易宝典文章——玩转Office 365中的Exchange Online服务 之五 怎样利用PowerShell连接Exchange Online实现管理

 

前面已经对Office 365的全局管理做了简单介绍,接下来的内容将进入本系列的主题——Exchange Online的介绍。通过微软提供的Office 365 Web控制页面的确可以管理Exchange Online的日常维护,但是需要进阶管理,则需要用到PowerShell。和Exchange Server相同,Exchange Online的很多操作是需要通过PowerShell来实现的。因此,首先介绍如何将PowerShell连接的Office 365中的Exchange Online。

一、实现PowerShell连接Exchange Online的系统需求

连接Exchange Online的Windows可以是:

l Windows 8/8.1

l Windows Server 2012/2012 R2

l Windows 7 SP1

l Windows Server 2008 R2 SP1

如果是Windows 8/8.1或者是Windows Server 2012/2012 R2可以直接通过系统自带的PowerShell可以连接Exchange Online。

如果是Window 7 SP1或Windows Server 2008 R2 SP1,则首先需要安装Microsoft .NET Framework 4.5/4.5.1,再安装Windows Management Framework 3.0/4.0才能通过PowerShell连接Exchange Online。

二、PowerShell连接Exchange Online的方法

使用本地的PowerShell连接到Office 365中的Exchange Online需要三个步骤,首先提供Exchange Online登录的管理员或用户账户;其次需要配置连接设置;最后需要将Exchange Online的命令导入到本地PowerShell的当前会话中。完成以上步骤后,就可以使用PowerShell对Exchange Online进行管理了。

1、定义Exchange Online登录凭据变量

通过Get-Credential命令,通过用户账户密码输入对话框获取用户凭证,并赋予一个变量。

$UserCredential = Get-Credential

clip_image002

在弹出的用户账户登录对话框中输入Office 365的用户账户和密码。点击“确定”,完成变量$UserCredential的赋值。

clip_image003

2、配置连接设置

使用New-PSSession新建一个PowerShell会话配置,将改配置信息赋予一个变量。

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://partner.outlook.cn/PowerShell/ -Credential $UserCredential -Authentication Basic -AllowRedirection

clip_image005

具体含义是:创建一个会话配置,配置名为“Microsoft.Exchange”,会话连接URL是“https://partner.outlook.cn/PowerShell/”这是世纪互联版Office 365的连接地址,如果是全球版Office 365,地址为“https://outlook.office365.com/powershell-liveid/”。提供的身份凭据为“$UserCredential”,即,之前定义的身份凭据变量。采用基本身份验证方式,并允许连接重定向到指定URL。

3、导入会话配置

使用Import-PSSession导入第二步中创建的会话配置。

Import-PSSession $Session

clip_image007

成功执行后,可能会收到警告,可以忽略。至此已经实现了本地PowerShell连接Office 365中的Exchange Online。在当前PowerShell会话中的操作将直接影响Exchange Online。

4、验证连接是否成功

可以通过简单的Exchange Online管理命令,验证是否已经连接到指定的Office 365订阅中。比如,查看订阅组织中的接受域或查看当前用户邮箱等。

使用Get-AcceptedDomain命令可以看到订阅Office 365时指定的域名和后来添加的自定义域。

clip_image009

使用Get-Mailbox命令可以列出当前订阅中所有用户的邮箱列表,以及所在服务器和邮箱所剩容量。

clip_image011

5、断开与Exchange Online的连接

可以使用Remove-PSSession命令断开指定配置会话。

Remove-PSSession $Session

clip_image012

强烈建议在关闭PowerShell窗口前,执行断开连接。因为,如果不断开连接,即使关闭了PowerShell窗口,Exchange Online将继续保留此会话,只有等其过期后才自动断开。由于总的会话数是有限制的,为了防止DoS攻击,最多只提供三个同时打开的会话。所以,如果之前已关闭PowerShell窗口的会话不能及时断开,很可能会导致三个会话数用完,这样将无法连接到Exchange Online。只能等待会话超时过期自动断开后再连接。

6、使用脚本方式连接Exchange Online

可以将三个步骤的PowerShell命令保存到一个PowerShell脚本文件中。需要连接时,只需要执行该脚本即可创建连接会话。

具体操作是将以下内容,以文本形式保存到一个*.ps1文件中。

$UserCredential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://partner.outlook.cn/PowerShell/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session

需要连接时,只需在PowerShell中运行该脚本,输入相应的Office 365用户账户和密码即可建立连接会话。

三、Exchange Online的PowerShell管理限制

即使是Office 365订阅的初始管理员账户,通过PowerShell连接Exchange Online后,也不可能使用Exchange的所有PowerShell命令。其情况有两种,一种是由于Office 365的限制,某些管理命令微软不会提供给用户;另一种是由于安全考虑原因和Office 365优化需要,默认没有授予用户使用这些命令的权限,即使是订阅的初始管理员或组织管理员。对于第二种情况,可以通过Exchange Online管理中心的“权限”管理项,通过角色组为管理员或用户分配所需的角色,一旦具有默认角色后,用户既能够使用该角色的PowerShell命令。

另外,可以通过以下命令禁用和启用用户的远程PowerShell连接Exchange Online功能。

Set-User [email protected] -RemotePowerShellEnabled $false

Set-User [email protected] -RemotePowerShellEnabled $true