Exchange Online中的通讯簿策略创建好后,并不会立即作用或生效,需要将其分配到对应的用户邮箱才能生效。Exchange Online为分配通讯簿策略提供了两种方式,即通过Exchange管理中心(EAC)的GUI方式和通过PowerShell的命令行方式。
一、使用Exchange管理中心给用户分配通讯簿策略
1、为单个用户邮箱分配通讯簿策略
在EAC中定位到“收件人”,在右侧窗口的菜单栏中 选择“邮箱”,然后在下面列表中选择需要分配通讯簿策略的用户,点击笔形编辑按钮。
在用户邮箱属性中点击“邮箱功能”,在右边“通讯簿策略”下拉菜单中选择需要分配到的策略,最后点击“保存”完成分配操作。
2、为多个用户邮箱批量分配通讯簿策略
在EAC中的“收件人”“邮箱”列表中,选择要分配相同通讯簿策略的邮箱。需要选择的邮箱非常多,而且有共同的属性,可以通过“高级搜索”来进行。具体的操作是通过邮箱的更多操作按钮“…”菜单,选择“高级搜索”。
在高级搜索对话框中,按需求指定搜索条件,点击“确定”,符合条件的邮箱将会被查找出来。这里可以添加的筛选条件还包括地址和自定义属性。
选择好需要分配策略的邮箱后,在右侧栏中点击“更多选项…”。
在展开的选项中点击“通讯簿策略”的“更新…”按钮。
在“批量分配通讯簿策略”的下拉菜单中选择要分配的通讯簿策略,然后点击“保存”按钮完成策略分配。
二、使用PowerShell为邮箱分配通讯簿策略
1、为单个邮箱分配策略
使用Set-Mailbox为指定邮箱分配通讯簿策略。
Set-Mailbox -Identity [email protected] -AddressBookPolicy “ABP_LPWR”
Get-Mailbox -Identity [email protected] | fl Name,AddressBookPolicy
2、为多个邮箱分配策略
其基本的思路是通过筛选器将需要分配的通讯簿策略的邮箱筛选到一个集合中,然后在对该集合中的邮箱进行循环分配策略操作。
对于筛选器的定义一般通过邮箱的Exchange自定义属性来操作,也可根据公司,组织关系等属性来进行。基本语法如下:
$<VariableName> = Get-Mailbox -ResultSize unlimited -Filter <Filter>
$<VariableName> | foreach {Set-Mailbox -Identity $_.MicrosoftOnlineServicesID -AddressBookPolicy <ABPIdentity>}
但是,对于一下没有共同属性,但有需要进行批量分配通讯簿策略的邮箱来讲,使用上述筛选器的操作方式就不太好解决了。推荐使用导入名单的方式来实现批量分配。
将所有要分配的邮箱地址写入一个文本文件,每一个地址占一行。
然后将其读入到PowerShell的一个变量中。
$ml = Get-Content “d:\mailboxes.txt”
最后使用foreach循环为列表中的各邮箱分配通讯簿策略,并通过Get-Mailbox确认每个邮箱已经按要求分配了指定的通讯簿策略。
$ml | foreach {Set-Mailbox -Identity $_ -AddressBookPolicy “ABP_LPWR”}
$ml | foreach {Get-Mailbox -Identity $_ | fl Name,AddressBookPolicy}