微软在近期更新了最新的预览版Exchange Online PowerShell V2模块,该模块是一个针对Exchange Online管理的全新体验。通过其连接到Office 365中的Exchange Online,可以利用管理员权限检索数据、创建新对象、更新现有对象、删除对象和配置Exchange联机及其功能。
本系列将就目前Exchange Online PowerShell V2提供的新功能和新命令进行体验性的讲述。由于当前该模块上属于预览阶段,所以不建议在生产环境中进行使用。即使要使用也需要受限谨慎使用。
一、Exchange Online PowerShell V2较之旧版的变化
据微软提供的介绍,Exchange Online PowerShell V2模块包含了一组针对批量数据检索方案进行了优化的新的命令。在安装该模块之后,尚未连接到Exchange Online之前,可以在该模块中看到且只能看到新的命令。但是,一旦与Exchange Online组织连接后,可以看到所有新、旧PowerShell命令。
从观察来看,微软有可能将用新的命令逐步取代旧的命令,从而提高效率和用户体验。但根据微软的产品开发惯例,应该不会类似于开源软件一般,一刀切的进行替代。而是会保持长时间的向后兼容。
1、身份验证的区别
Exchange Online PowerShell V2模块中的命令均采用新的身份验证方式,因此不再支持旧的基本身份验证。从微软的Office 365近期的部署通告上看,也在逐步计划取消基本身份验证。
2、对应更新的命令
目前从微软提供的资料来看,在Exchange Online PowerShell V2中更新的命令一个有10条,分别如下:
A、连接Exchange Online命令
Connect-ExchangeOnline
对应的旧命令为:
Connect-EXOPSSession或New-PSSession
B、获取组织中的邮箱对象和属性
EXOMailbox
对应的旧命令为:
Get-Mailbox
C、获取组织中现有的收件人对象
EXORecipient
对应的旧命令为:
Get-Recipient
D、获取组织中各邮箱的客户端访问设置
EXOCasMailbox、
对应的旧命令为:
Get-CASMailbox
E、在组织中检索对邮箱的权限
EXOMailboxPermission
对应的旧命令为:
Add-mailboxpermission
F、获取组织中用户配置的SendAs权限
EXORecipientPermission
对应的旧命令为:
Add-recipientpermission
G、获取邮箱状态信息,如大小、邮件数以及最后一次登录访问时间
EXOMailboxStatistics
对应的旧命令为:
Get-mailboxstatistics
H、检索邮箱中的文件夹状态信息,如大小、邮件数以及文件夹名称、ID等
EXOMailboxFolderStatistics
对应旧命令为:
Get-mailboxfolderstatistics
I、获取邮箱中的文件夹权限
EXOMailboxFolderPermission
对应旧命令为:
J、获取用户邮箱配置了同步的移动设备信息
EXOMobileDeviceStatistics
对应旧命令为:
MobileDeviceStatistics
上述命令,将在其后的内容中逐一进行详细介绍,并提供体验结果。
二、安装Exchange Online PowerShell V2模块
对于Exchange Online PowerShell V2模块在使用前,需要进行单独安装。
1、环境需求
在进行安装之前必须要符合如下三个要求:
操作系统为Windows 7 SP1或Windows Server 2008 R2 SP1以上版本;
仅支持在PowerShell 5.1的环境中运行,即非单独安装的PowerShell 6/7等版本;
如果使用远程管理(WinRM),则WinRM需要允许基本身份验证(默认开启)。
2、安装或升级PowershellGet模块
由于需要通过最新PowershellGet模块执行Exchange Online PowerShell V2的安装和导入操作。所以,首先要安装和升级PowershellGet模块。
右击“开始”菜单按钮,在上下文菜单中,点击“Windows PowerShell(管理员)”,以管理员身份模式运行PowerShell。
在PowerShell中运行命令:
Install-Module PowershellGet -Force
根据提示输入“Y”,完成PowershellGet模块的安装。
如果此前,系统已经安装了PowershellGet,需要升级到最新,可以使用如下命令进行操作:
Update-Module PowershellGet -Force
注:上述和后续相关PowerShell的模块安装过程,可能需要从国外微软服务器下载数据,如遇国际链路不佳的情况,可能会导致安装过程延迟或失败。因此,建议在具有较好国际访问链路的环境中进行安装。
3、设置PowerShell执行策略
由于安全需要,PowerShell的执行策略默认不执行不受信任签名的PowerShell脚本。若要PowerShell能够执行从Internet下载的且为受信任发布者签发的脚本,需要对默认的执行策略进行修改。
通过Get-ExecutionPolicy命令获取当前PowerShell的执行策略,如果该策略的限制度大于“RemoteSigned”策略的限制度,则使用“Set-ExecutionPolicy”将执行策略改为“RemoteSigned”。
Set-ExecutionPolicy RemoteSigned
完成上述操作后,关闭当前PowerShell窗口,在下次打开后将生效。
4、安装并导入Exchange Online PowerShell V2模块
以管理员身份模式运行PowerShell,执行:
Install-Module -Name ExchangeOnlineManagement
将自动从Internet下载安装Exchange Online PowerShell V2模块。
安装完成后,执行:
Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
导入Exchange Online PowerShell V2模块,并验证和查看Exchange Online PowerShell V2模块是否安装导入成功,以及其版本。
三、维护Exchange Online PowerShell V2模块
如前所述,对于Exchange Online PowerShell V2模块,目前所处在预览版,因此微软会对其进行快速更新迭代的。那么这就有可能需要进行持续更新到最新版本。当然,对于该预览版体验结束后,计划后续不再使用,建议将其进行卸载。
1、更新Exchange Online PowerShell V2模块
由上述,可知通过导入模块后,使用Get-Module命令可以查看该模块的版本号。如果发现与微软发布最新的版本不同,强烈建议更新到最新版本。
以管理员身份模式运行PowerShell,执行:
Update-Module -Name ExchangeOnlineManagement
可以自动搜索并将Exchange Online PowerShell V2更新到微软发布的最新版。
完成后,执行:
Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
验证升级版本是否发生变化。
2、卸载Exchange Online PowerShell V2模块
和PowerShell的其它模块一样,可以通过Uninstall-Module卸载Exchange Online PowerShell V2模块,执行:
Uninstall-Module -Name ExchangeOnlineManagement
完成Exchange Online PowerShell V2模块的卸载。