微软年初的时候更新了Exchange Online Powershell V2 的版本。因为疫情,我也没关注,毕竟旧版本的脚本还是可以继续运行的。今天刚好有空,测试了一下新版本,发现稳定性和速度果然大幅度提高了,回头就把旧版本的脚本给修改了。
下面看看新版本的使用方式。
安装:
#第一行的目的是把安全协议更改为tls1.2, PS5 默认的tls1.0现在已经不支持了,如果直接使用Install-Module会报错
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
#下面两行是用来安装或者更新PowerShell Gallery的安装模块
Install-Module -Name PowerShellGet -Force
Update-Module -Name PowerShellGet
#下面两行是用来安装或者更新ExchangeOnlineManagement模块, 旧版本我们还需要登陆进Exchange Admin去下载,新版本直接可以通过PowerShell Gallery安装了
Install-Module -Name ExchangeOnlineManagement
Update-Module -Name ExchangeOnlineManagement
#安装完成之后,导入查看模块信息
Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
安装完成之后,就可以直接连接和运行了。比起第一个版本,2.0的版本优化了很多。旧版本里面,我们是通过New-PSSession的方式来实现连接,但是当我使用MFA的情况下,我只能通过间接调用dll文件来操作,这样子非常的恶心,每次链接都需要输入手机验证码,而且非常不稳定,执行脚本超过20分钟就会导致PowerShell ISE完全死机。
新版本可以直接通过传递credential链接,非常方便,也很稳定。
可以做个对比,下面是1.0的方式
#MFA Authentication, 能用但是很不稳定#
Import-Module $((Get-ChildItem -Path $($env:LOCALAPPDATA+"\Apps\2.0\") -Filter Microsoft.Exchange.Management.ExoPowershellModule.dll -Recurse ).FullName|?{$_ -notmatch "_none_"}|select -First 1)
$EXOSession = New-ExoPSSession
Import-PSSession $EXOSession
#Normal login
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Credential -Authentication Basic -AllowRedirection
Import-PSSession $Session
Connect-MsolService -Credential $credential
下面是2.0的方式,不过我的测试发现,我的MFA管理员账号直接用普通连接方式居然也是工作的
#普通
Connect-ExchangeOnline -Credential $UserCredential -ShowProgress $true
#MFA
Connect-ExchangeOnline -UserPrincipalName $UPN -ShowProgress $true
连接效果,感觉利落,对比1.0 时间几乎快了一倍,也没一大堆乱七八糟的警告信息了
最后看看相关命令变化
li
咋一看貌似就是命令前面多了一个EXO,比如从 get-mailbox 变成了 get-exoMailbox, 他的内部的参数其实变化了。旧版本的get-mailbox会返回所有的属性,包括大量的空白属性,这些属性可能使用的机会非常稀少,这样子其实浪费了大量的资源和时间。 新版本里面,他定义了一个东西叫做 Propertyset,也就是把各种常见的属性分成大类放到一起,我们返回的时候,指定对应的propertyset,就可以获取对应的信息,而不是一股脑的全部返回。
比如
虽然看起来改进不多,但是连接和执行效果的优化,真正使用起来感觉爽快太多了
来源:oschina
链接:https://my.oschina.net/u/4392508/blog/4288384