易宝典文章——体验O365中的EXO PS V2 之一 初识Exchange Online PowerShell V2

clip_image002

微软在近期更新了最新的预览版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近期的部署通告上看,也在逐步计划取消基本身份验证。

clip_image004

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

对应旧命令为:

Add-mailboxfolderpermission

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。

clip_image006

在PowerShell中运行命令:

Install-Module PowershellGet -Force

根据提示输入“Y”,完成PowershellGet模块的安装。

clip_image008

如果此前,系统已经安装了PowershellGet,需要升级到最新,可以使用如下命令进行操作:

Update-Module PowershellGet -Force

注:上述和后续相关PowerShell的模块安装过程,可能需要从国外微软服务器下载数据,如遇国际链路不佳的情况,可能会导致安装过程延迟或失败。因此,建议在具有较好国际访问链路的环境中进行安装。

3、设置PowerShell执行策略

由于安全需要,PowerShell的执行策略默认不执行不受信任签名的PowerShell脚本。若要PowerShell能够执行从Internet下载的且为受信任发布者签发的脚本,需要对默认的执行策略进行修改。

通过Get-ExecutionPolicy命令获取当前PowerShell的执行策略,如果该策略的限制度大于“RemoteSigned”策略的限制度,则使用“Set-ExecutionPolicy”将执行策略改为“RemoteSigned”。

Get-ExecutionPolicy

Set-ExecutionPolicy RemoteSigned

clip_image010

完成上述操作后,关闭当前PowerShell窗口,在下次打开后将生效。

4、安装并导入Exchange Online PowerShell V2模块

以管理员身份模式运行PowerShell,执行:

Install-Module -Name ExchangeOnlineManagement

将自动从Internet下载安装Exchange Online PowerShell V2模块。

clip_image012

安装完成后,执行:

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更新到微软发布的最新版。

clip_image014

完成后,执行:

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模块的卸载。