Powershell RESTAPI 访问Office365

简介:

豆子之前对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

wKioL1apfBDRR_zfAABHTAERAv4736.png

然后我就可以做一些Exchange powershell相关的操作了

比如

wKiom1apfteCXfVzAAAVjwJqiLc858.png



今天无意中发现还可以通过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账户上的个人信息

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

wKioL1apfViChe89AABPqukFw2w368.png


查看一下未来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


wKioL1apfkDCKBPlAABRBWQZXjs788.png

查看一下我的邮件

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


wKiom1apflOyKd8aAABFka0DbNo749.png


目前这个RESTAPI 感觉还不是很成熟,也有可能是我没有找到正确的接口。比如他只支持当前用户的查询,如果我想查询其他人的记录,就会报错。前面的例子,我是用默认的Get方式来读取,理论上应该也可以用post 方式来创建邮件,会议邀请等等,不过我的测试并不是太成功。


不过总的来说,RESTAPI使用起来比加载一个模块再写一堆脚本快速多了,这对于快速查询一些在线的信息还是很有帮助的。










本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1739443,如需转载请自行联系原作者

目录
相关文章
|
12天前
|
Windows
【报错】在浏览器输入localhost为什么启动的是Microsoft的IIS windows首页?
【报错】在浏览器输入localhost为什么启动的是Microsoft的IIS windows首页?
|
2月前
|
存储 运维 Java
PowerShell系列(八)PowerShell系统默认内置的Provider介绍
【2月更文挑战第3篇】Alias Provider用来标记其他命令的对象,一般用来标记命令中比较长的函数或者命令,也支持在PowerShell当中指定CMD Shell 中的命令的别名。其实目的都是通过较短的别名来简化一些命令的使用。
PowerShell系列(八)PowerShell系统默认内置的Provider介绍
|
2月前
|
存储 安全 数据库
PowerShell系列(七)PowerShell当中的Provider介绍
【2月更文挑战第2篇】PowerShell Provider是基于NetFrameWork运行的一个框架,它的作用是让数据(文件、注册表环境对象等等)以特殊的方式保存在PowerShell里面,然后可以直接通过脚本命令查看和管理这些数据。
PowerShell系列(七)PowerShell当中的Provider介绍