Powershell RESTAPI 访问Office365

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Powershell RESTAPI 访问Office365相关的知识,希望对你有一定的参考价值。

豆子之前对Office365的用户操作一般是通过远程的加载模块,然后创建一个session连接。

比如


$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等微软的域名邮件

https://msdn.microsoft.com/office/office365/APi/complex-types-for-mail-contacts-calendar#EventResource


这个链接里面提供了1.0和2.0 的接口,但是2.0貌似在Office 365里面不工作,因此我还是用的1.0的版本。


下面是几个简单的例子


比如看看我的Office 365账户上的个人信息

$cred=get-credential
Invoke-RestMethod -Uri "https://outlook.office365.com/api/v1.0/me" -Credential $cred

技术分享


查看一下未来30天内的日历会议预约

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


技术分享

查看一下我的邮件

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使用起来比加载一个模块再写一堆脚本快速多了,这对于快速查询一些在线的信息还是很有帮助的。

本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1739443

以上是关于Powershell RESTAPI 访问Office365的主要内容,如果未能解决你的问题,请参考以下文章

Powershell Invoke-Restmethod不能将生成的Authtoken用作变量

如何在 PowerShell 中使用 Rest API 创建服务更改

如何使用 REST API 在 PowerShell 中获取 TFS 构建报告 [重复]

来自 PowerShell 的 REST API -“不允许使用 POST 方法”

执行 powershell 脚本时出错

使用内置系统变量创建 Powershell 环境变量