关于Microsoft Teams用户地址列表及搜索你真的需要了解下

在上一篇文章发布后公司内部同事也注意到了会议室列表的问题,发现一个很有意思的问题,直接搜索会议室名字能搜出来,搜索会议室SIP地址或SMTP地址反而搜索不出来。这个锅是我的,需要来背一背,效果如下:

搜索中文名字,可以正常显示

image.png

搜索SIP地址或SMTP地址,提示无任何匹配项,请与你的IT管理员联系以扩大搜索范围:

image.png

再来看下这个会议室在Office365中是存在的,也有许可

image.png

     公司技术群里都要炸锅了,当我告诉他们是我的锅隔着屏幕都能感觉到各位大大们的无语哈哈哈哈。

image.png

那么为什么会出现这种情况呢?这其实是我自己的锅,该背还是要背哈哈哈~

我好久之前测试了Teams的信息障碍(我又称之为内部防火墙,可以查看我之前的文章Microsoft Teams快速上手系列-08Teams中的内部防火墙),在这个功能中有一个必要条件就是启用团队范围目录搜索,之前测试打开忘记关闭这个功能,如果希望快速搜索到所有用户只需要关闭这个功能即可。

如何关闭?进入Teams管理中心打开“组织范围的设置”选择“Teams设置”,在最下方关闭使用Exchange通讯录策略进行目录搜索然后点击保存即可(可以看到我这里还是打开状态)

image.png

等待一会即可搜索出来用户

image.png

当然这是一种比较粗暴的解决方法,如果关闭这个功能,那么Teams的信息障碍将会失效,所有最佳实践是将账号放到Exchange通讯录中去,很显然我搜索的这个账号是没有在我们Exchange Online通讯录策略中的,因为我们的Exchange Online中连通讯录策略都没有创建(之前的测试是额外申请的E5试用版来做的信息障碍Demo):

image.png

那么最佳实践是什么呢?

依然是开启使用Exchange通讯录策略进行目录搜索,但是就需要对通讯录策略进行维护。通讯录策略(AddressBookPolicy)又称之为ABP,有4部分组成:

Ø  自定义GAL;

Ø  自定义脱机通讯簿(OAB);

Ø  一个或多个自定义地址列表;

Ø  自定义Room列表;

如果不使用ABP,则Exchange Online邮箱使用默认的GAL,OAB和地址列表,这样就解释了为什么在Teams中使用SMTP地址无法进行搜索用户。

那么就开始来做个ABP吧,在配置之前需要有Address Lists角色权限,如果没有此权限,连运行Get-GlobalAddressList命令都会报错,如下

image.png

去到Exchange Online管理中心给我的账号加上Address Lists角色权限

image.png

保存权限后等待几分钟生效,然后再次通过PowerShell远程连接到Exchange Online,获取当前所有Address List

image.png

接下来使用命令新建一个ABP,如下:

New-AddressBookPolicy -Name "AllList" -AddressLists "\All Users" -Roomlist "\All Rooms" -OfflineAddressBook "\Default Offline Address Book" -GlobalAddressList "\Default Global Address List"

其中OAB和GAL,RL都可以自己定义。这样做有什么意义呢?还是针对大型企业多站点很实用,设想下一个跨国大型企业全球几十万员工,如果让所有的员工都下载默认的OAB或使用GAL那么Outlook程序可能会直接卡死,所以需要有ABP这样的策略为不同的站点用户创建不同的策略,让当前站点用户下载当前站点的OAB或使用当前站点的GAL。至于怎么去创建OAB和GAL就不在这里展开去分享了,有兴趣的可以看Docs(请忽略我们生产环境全是用的默认的,毕竟都在中国境内人数规模还没上千)

ABP创建过程如下:

image.png

创建好ABP后使用Set-Mailbox命令给对应的用户分配ABP策略。这里有两个账号一个有ABP一个没有

image.png

接下来再去启用基于Exchange通讯录策略的搜索,并等待几分钟是设置生效(我这里由于下午修复无法搜索其他人的问题,临时采用了最粗暴的做法直接关闭这个搜索)

image.png

等待一段时间后进行验证:

首先使用我的账号登录Teams进行搜索,输入SMTP地址后显示出来匹配的用户,完全可以正常搜索

image.png

接下来使用没有分配ABP的账号登录进行Teams搜索,提示没有任何匹配项。

image.png

所以明白整个原理后再加之有一定微软基础架构相关经验能力然后去做Teams的相关规划和设计,这样才能全盘掌握Teams!

总结:有时候鱼与熊掌可以兼得,不一定使用最粗暴的方法!

猜你喜欢

转载自blog.51cto.com/scnbwy/2439464