配置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地址来找到对方并通讯。如下所示:

配置Lync


但是如果我们想要和搜索SIP域内其他内部用户一样,通过显示名或者模糊搜索的方式来查找联盟用户,我们应该如何做呢?

技术实现:

我们可以通过以下几个步骤,来实现这一需求:

  1. 获取对方SIP域内用户的部分AD账号属性,这些属性主要包含:  Last Name
    First Name
    DisplayName
    EmailAddress
    Skype Address(msRTCSIPPrimaryUserAddress)
  2. 在我方域内创建AD联系人
  3. 为联系人配置步骤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客户端即可使用显示名或者模糊搜索的方式,来查找到联盟用户,如图所示:

配置Lync


配置Lync

编辑

技术扩展:

结合一个大型企业的实际情况来考虑,需求可能更复杂,主要涉及到:

  1. 有更多的联系人需要创建,需要批量操作
  2. 对方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切换

Lync 2013就地升级到Skype for Business 2015-02

无法使用 Skype for Business 2016 安装 Lync 2013 SDK