在上一篇文章发布后公司内部同事也注意到了会议室列表的问题,发现一个颇有意思的问题,直接搜索会议室名字能搜出来,搜索会议室SIP地址或SMTP地址反而搜索不出来。这个锅是个人,须要来背一背,效果以下:架构
搜索中文名字,能够正常显示ide
搜索SIP地址或SMTP地址,提示无任何匹配项,请与你的IT管理员联系以扩大搜索范围:测试
再来看下这个会议室在Office365中是存在的,也有许可spa
公司技术群里都要炸锅了,当我告诉他们是个人锅隔着屏幕都能感受到各位大大们的无语哈哈哈哈。设计
那么为何会出现这种状况呢?这实际上是我本身的锅,该背仍是要背哈哈哈~3d
我很久以前测试了Teams的信息障碍(我又称之为内部防火墙,能够查看我以前的文章Microsoft Teams快速上手系列-08Teams中的内部防火墙),在这个功能中有一个必要条件就是启用团队范围目录搜索,以前测试打开忘记关闭这个功能,若是但愿快速搜索到全部用户只须要关闭这个功能便可。blog
如何关闭?进入Teams管理中心打开“组织范围的设置”选择“Teams设置”,在最下方关闭使用Exchange通信录策略进行目录搜索而后点击保存便可(能够看到我这里仍是打开状态)get
等待一会便可搜索出来用户it
固然这是一种比较粗暴的解决方法,若是关闭这个功能,那么Teams的信息障碍将会失效,全部最佳实践是将帐号放到Exchange通信录中去,很显然我搜索的这个帐号是没有在咱们Exchange Online通信录策略中的,由于咱们的Exchange Online中连通信录策略都没有建立(以前的测试是额外申请的E5试用版来作的信息障碍Demo):class
那么最佳实践是什么呢?
依然是开启使用Exchange通信录策略进行目录搜索,可是就须要对通信录策略进行维护。通信录策略(AddressBookPolicy)又称之为ABP,有4部分组成:
Ø 自定义GAL;
Ø 自定义脱机通信簿(OAB);
Ø 一个或多个自定义地址列表;
Ø 自定义Room列表;
若是不使用ABP,则Exchange Online邮箱使用默认的GAL,OAB和地址列表,这样就解释了为何在Teams中使用SMTP地址没法进行搜索用户。
那么就开始来作个ABP吧,在配置以前须要有Address Lists角色权限,若是没有此权限,连运行Get-GlobalAddressList命令都会报错,以下
去到Exchange Online管理中心给个人帐号加上Address Lists角色权限
保存权限后等待几分钟生效,而后再次经过PowerShell远程链接到Exchange Online,获取当前全部Address List
接下来使用命令新建一个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建立过程以下:
建立好ABP后使用Set-Mailbox命令给对应的用户分配ABP策略。这里有两个帐号一个有ABP一个没有
接下来再去启用基于Exchange通信录策略的搜索,并等待几分钟是设置生效(我这里因为下午修复没法搜索其余人的问题,临时采用了最粗暴的作法直接关闭这个搜索)
等待一段时间后进行验证:
首先使用个人帐号登陆Teams进行搜索,输入SMTP地址后显示出来匹配的用户,彻底能够正常搜索
接下来使用没有分配ABP的帐号登陆进行Teams搜索,提示没有任何匹配项。
因此明白整个原理后再加之有必定微软基础架构相关经验能力而后去作Teams的相关规划和设计,这样才能全盘掌握Teams!
总结:有时候鱼与熊掌能够兼得,不必定使用最粗暴的方法!