配置Lync 2013/Skype for Business 2015/Skype for Business 2019联盟用户模糊搜索
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置Lync 2013/Skype for Business 2015/Skype for Business 2019联盟用户模糊搜索相关的知识,希望对你有一定的参考价值。
需求背景:
通常来说,当两个SIP域之间创建联盟信任,并且用户开启联盟权限之后,可以通过在Skype客户端上搜索对方用户的SIP地址来找到对方并通讯。如下所示:
但是如果我们想要和搜索SIP域内其他内部用户一样,通过显示名或者模糊搜索的方式来查找联盟用户,我们应该如何做呢?
技术实现:
我们可以通过以下几个步骤,来实现这一需求:
- 获取对方SIP域内用户的部分AD账号属性,这些属性主要包含:
Last Name
First Name
DisplayName
EmailAddress
Skype Address(msRTCSIPPrimaryUserAddress) - 在我方域内创建AD联系人
- 为联系人配置步骤1中的属性
我们可以通过如下命令来实现:
New-ADObject -Type contact -Name "Zhang San" -DisplayName "Zhang San, HR-001" -OtherAttributes @givenName="San";sn="Zhang";mail="San.Zhang@contoso.com";msRTCSIP-PrimaryUserAddress="San.Zhang@contoso.com" -Path "OU=China,OU=Outside Contact List,OU=accounts,DC=contoso.com,DC=cn"
完成之后,我们通过Skype客户端即可使用显示名或者模糊搜索的方式,来查找到联盟用户,如图所示:
编辑
技术扩展:
结合一个大型企业的实际情况来考虑,需求可能更复杂,主要涉及到:
- 有更多的联系人需要创建,需要批量操作
- 对方SIP域中联系人始终在增加/减少/改变,那么这就需要我们每隔一段时间就要进行本地AD contact的信息更新
基于以上情况考虑,我们可以使用如下脚本,批量进行导入并定期更新信息,代码如下:
Function Import-SkypeContact
Param($List)
foreach($Contact in $Contacts)
#定义Contact属性
$Name = $Contact.Name
$DisplayName = $Contact.DisplayName
$givenName = $Contact.Last
$sn = $Contact.First
$mail = $Contact.EmailAddress
$msRTCSIPPrimaryUserAddress = $Contact.msRTCSIPPrimaryUserAddress
$Path = "OU=China,OU=Outside Contact List,OU=accounts,DC=contoso.com,DC=cn"
$ExistedContact = Get-ADObject -Filter Name -eq $Name -and objectclass -eq contact
$ExistedContactDisplayName = Get-ADObject -Filter Name -eq $Name -and objectclass -eq contact -Properties DisplayName
#判断如果Contact已存在
if($ExistedContact)
#判断AD是否存在与列表中DisplayName相同的Contact,存在则更新其Lync地址并导出
if($ExistedContactDisplayName.DisplayName -eq $DisplayName)
$ExistedContactProperties = Get-ADObject -Filter DisplayName -eq $DisplayName -and objectclass -eq contact -Properties DisplayName,msRTCSIP-PrimaryUserAddress | Select-Object DisplayName,msRTCSIP-PrimaryUserAddress
$ExistedContactArray += $ExistedContactProperties
$ExistedContact | Set-ADObject -Replace @msRTCSIP-PrimaryUserAddress="$msRTCSIPPrimaryUserAddress"
#判断如果Contact已存在但是DisplayName不同
else
#如果提供的列表中的Contact无邮箱属性,则创建无邮箱联系人
if(!$mail)
New-ADObject -Type contact -Name "$Name," -DisplayName $DisplayName -OtherAttributes @givenName="$givenName";sn="$sn";msRTCSIP-PrimaryUserAddress="$msRTCSIPPrimaryUserAddress" -Path $Path
#如果提供的列表中的Contact有邮箱属性,则创建有邮箱联系人
else
New-ADObject -Type contact -Name "$Name," -DisplayName $DisplayName -OtherAttributes @givenName="$givenName";sn="$sn";mail="$mail";msRTCSIP-PrimaryUserAddress="$msRTCSIPPrimaryUserAddress" -Path $Path
#判断如果AD不存在列表中的联系人,且列表中的Contact无邮箱属性,则创建无邮箱联系人
elseif(!$mail)
New-ADObject -Type contact -Name $Name -DisplayName $DisplayName -OtherAttributes @givenName="$givenName";sn="$sn";msRTCSIP-PrimaryUserAddress="$msRTCSIPPrimaryUserAddress" -Path $Path
#判断如果AD不存在列表中的联系人,且列表中的Contact有邮箱属性,则创建有邮箱联系人
else
New-ADObject -Type contact -Name $Name -DisplayName $DisplayName -OtherAttributes @givenName="$givenName";sn="$sn";mail="$mail";msRTCSIP-PrimaryUserAddress="$msRTCSIPPrimaryUserAddress" -Path $Path
#导入联系人列表
$fileName = Get-Date -Format yyyyMM
$list = "\\\\FileShare\\Script\\Skype for Business 2015\\$fileName.csv"
$Contacts = Import-Csv $list
Import-SkypeContact -List $list
以上是关于配置Lync 2013/Skype for Business 2015/Skype for Business 2019联盟用户模糊搜索的主要内容,如果未能解决你的问题,请参考以下文章
Lync 2013打开报错Lync即将成为Skype for Business处理方法
Lync 项目经验-09-用Lync 2013或Skype for Business 2015抢春运火车票
Lync 项目经验-12-为某上市企业Skype for Business购买Godday证书
Skype for Business Client 与 Lync Client切换