豆子之前对Office365的用户操作一般是通过远程的加载模块,然后创建一个session连接。
比如
1
2
3
4
5
6
7
8
|
$cred
=
Get-Credential
Import-Module
MSOnline
Set-ExecutionPolicy
remotesigned
Connect-MsolService
-Credential
$cred
#连接到Office365
$Session
=
New-PSSession
-ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell/ -Credential
$Cred
-Authentication Basic -AllowRedirection
Import-PSSession
$session
|
然后我就可以做一些Exchange powershell相关的操作了
比如
今天无意中发现还可以通过RESTAPI直接操作。毕竟是个网页嘛,数据都在网页上显示,那么直接从网络上抓取内容就好啦。
详细的REST API接口如下所示,可以用同样的方法访问hotmail,live, office365等微软的域名邮件
这个链接里面提供了1.0和2.0 的接口,但是2.0貌似在Office 365里面不工作,因此我还是用的1.0的版本。
下面是几个简单的例子
比如看看我的Office 365账户上的个人信息
1
2
|
$cred
=
get-credential
Invoke-RestMethod
-Uri
"https://outlook.office365.com/api/v1.0/me"
-Credential
$cred
|
查看一下未来30天内的日历会议预约
1
|
Invoke-RestMethod
-Uri
"https://outlook.office365.com/api/v1.0/me/calendarview?startDateTime=$(Get-Date)&endDateTime=$((Get-Date).AddDays(30))"
-Credential
$cred
|
ForEach-Object
{
$_
.value } | Select subject, start,
end
, showas
|
查看一下我的邮件
1
|
Invoke-RestMethod
-method Get -Uri
"https://outlook.office365.com/api/v1.0/me/Folders/sentitems/messages"
-Credential
$cred
|
ForEach-Object
{
$_
.value } | select subject,bodypreview
|
目前这个RESTAPI 感觉还不是很成熟,也有可能是我没有找到正确的接口。比如他只支持当前用户的查询,如果我想查询其他人的记录,就会报错。前面的例子,我是用默认的Get方式来读取,理论上应该也可以用post 方式来创建邮件,会议邀请等等,不过我的测试并不是太成功。
不过总的来说,RESTAPI使用起来比加载一个模块再写一堆脚本快速多了,这对于快速查询一些在线的信息还是很有帮助的。
本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1739443,如需转载请自行联系原作者