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

时间: 2024-10-18 17:31:07

Powershell RESTAPI 访问Office365的相关文章

部署 Windows PowerShell Web 访问

部署 Windows PowerShell Web 访问 适用对象:Windows Server 2012, Windows Server 2012 R2 Windows PowerShell® Web Access 在 Windows Server® 2012 中首次引入,充当 Windows PowerShell 网关,可提供以远程计算机为目标的基于 Web 的 Windows PowerShell 控制台. 它可让 IT 专业人士在 Web 浏览器中运行来自 Windows PowerSh

PowerShell 脚本通知Office365 同步错误

豆子公司是上市公司,每年都需要审计.因此离职用户的信息不能删掉,只能disable掉.有的时候,桌面需要把一个离职用户的邮件重新添加到另一个用户的别名,以便继续接收邮件.但是Office365默认配置情况下 一个已经disable掉的用户,不管怎么改他都不会继续同步,这样造成的结果就是桌面经常修改的顺序不对,造成了本地的AD已经改了,但是修改的东西不会同步到office365, 或者直接office365认为已经有记录了,拒绝添加新的记录. 鉴于桌面支持的不靠谱,豆子每天都需要看看同步状态,然后

powershell 批量获取office365用户邮箱使用容量

公司用的office365的Excahnge Online,云端默认有50G容量. 2,3年下来,发现销售或者售后的邮箱容量会很快就要到达极限了,为了方便查看那些用户快到使用极限,那肯定要用powershell. 附:官方文档,如何用powershell连接到Exchange Onlinehttps://docs.microsoft.com/zh-cn/powershell/exchange/exchange-eop/connect-to-exchange-online-protection-p

Windows Server 2016 + Exchange 2016 +Office365混合部署(四)

我们前面文章分别介绍了,Windows Server 2016 + Exchange 2016 + Office365的安装及简单配置,为混合部署基本做好了准备,但还差最后一步,就是ADFS的安装接配置:ADFS是为了让本地账户可以通过本地域进行单点登录到Office365上,所以相对来说还是比较容易的:ADFS服务器是windows 系统自带的功能角色:所以我们无法单独下载安装,我们本来想在Windows Server2016下安装及配置的,但是有个问题是windows server2016下

powershell 操作sharepoint命令集

打开SharePoint 2013 Management Shell, and then run as administrator.执行如下命令 1. 添加wsp和安装Add-SPSolution -LiteralPath "C:\DeployResource\WSP\test.wsp"Install-SPSolution -Identity "test.wsp" -WebApplication "http://domain:port/" -GA

管理Office365上的用户及所分配订阅信息

说到Office365上的用户,我们都知道分为两种,一种是在Office365上创建的online的全局管理用户,另外一种为使用dirsync工具将本地AD用户同步到Online上的用户,不管是Online上创建的用户还是本地到Online上的用户,我们如何管理用户信息呢,如何管理用户所分配的订阅的,我们都知道如果将本地AD用户同步到Online上,而且要让本地AD用户可以使用online上的对应的服务的话,我们需要给用户分配相关的订阅服务才可以.所以我们介绍一下,如何管理Online上的用户及

Office 365系列之十四:配置自定义URL访问个人Portal和网页版Outlook

在之前的文章中我们已经通过添加自定义域名实现将用户登录名和电子邮件地址修改为公司的域名.但是如何实现通过自定义的URL访问Office 365 Portal和Exchange OWA. 1.  配置自定义URL 1.1  在开始本章节之前请确保已经在Office 365管理中心添加好了自定义域,关于如何添加自定义域请参考黄锦辉专栏,链接:http://stephen1991.blog.51cto.com/8959108/1596060 1.2 实现通过portal.wangld.com访问Off

用Windows PowerShell 控制管理 Microsoft Office 365

如果想要通过PowerShell控制管理Office365,首先要安装Microsoft Online Services Sign-In Assistant 7.0,链接如下 Microsoft Online Services Sign-In Assistant 32-bit Microsoft Online Services Sign-In Assistant 64-bit 之后,安装Microsoft Online Services Module for Windows PowerShell

PowerShell让系统可以执行.ps1文件

.ps1文件是PowerShell写好的脚本文件.在Windows系统中,默认情况下是不允许执行.ps1文件的,那么怎么才能让系统允许执行.ps1文件呢? 什么是“.ps1”文件? 这个是PowerShell写的脚本文本,你可以在记事本中写一段PowerShell代码,然后将其保存为“xxx.ps1”,后面要使用它的时候,双击即可运行了.这有点像批处理的“.bat”文件,也有点像VBScript的“.vbs”文件.这些都是Windows的脚本文件. 如何执行“.ps1”文件? 接下来大家会问,那