Скрипт автоматического включения enterprise voice Lync 2013

Встала задача автоматического включения enterprise voice у пользователей. Ну что, надо так надо, но руками каждый раз делать эти утомительные действия нет никакого желания. Поэтому было решено написать небольшой скрипт который будет выполнять за нас эту рутинную работу. Опишу немного работу скрипта, кто знаком с PowerShell я думаю и так все поймут.
Создадим в Active Directory группу, например «not_voice», поправим в скрипте строки исходя из ваших параметров:

#Specifies options. Specify a user group.
$group = «CN=not_voice,ou=system,dc=example,dc=com»
# OU users
$OU = «ou=accounts,dc=example,dc=com»

Поправим -PolicyName на ваше:

Set-CsUser -Identity $_.DisplayName -EnterpriseVoiceEnabled $true -LineURI $sipit -PassThru | Grant-CsVoicePolicy -PolicyName «Your PolicyName»

Принцип работы скрипта следующий. Исходя из заданных настроек мы получаем список пользователей которые заведены на Lync сервере (параметр SipAddress -ne «» ), и имеют не пустое поле телефон в свойствах объекта (параметр phone -ne «»). Далее мы проверяем наличие пользователя в группе not_voice. Для чего мы это делаем? Представьте ситуацию, включив всем enterprise voice, нам понадобится его отключить у кого-то и оставить только возможность звонков PC-to-PC only. В этом случае мы просто добавляем пользователя в указанную выше группу и скрипт автоматически отключит enterprise voice и очистит Line URL, чтобы в дальнейшем мы смогли использовать освободившийся номер.

В принципе все готово для запуска. Далее публикую полную версию скрипта. Скопируйте его к себе, внесите изменения и запустите в планировщике задач.

<#
Orlov Alexey
https://blog.eaglenn.ru
alexey.n.orlov [AT] gmail.com

The script checks for user opreedelnnom container
( you can specify all AD) and wound up in lync.
If the user exists on the Lync server and not a member
of the group not_voice enable enterprise voice.
Number is taken from the Active Directory field phone.
If the user is in a group not_voice, then he does not
enable enterprise voice, as if it was enabled to
enterprise voice, then enterprise voice box removed
and cleaned -LineURI
#>

#Specifies options. Specify a user group.
$group = «CN=not_voice,ou=system,dc=example,dc=com»
# OU users
$OU = «ou=accounts,dc=example,dc=com»
#Get a list of users.
Get-CsAdUser -OU $OU | Where-Object phone -ne «» | Where-Object SipAddress -ne «» | foreach {
$sipit = $_.phone
$sipit = «tel:» + $sipit
#Checks whether the group.
if ((Get-ADUser $_.DisplayName -Properties memberof).memberof -like $group )
{
# If you disable the group enterprise voice
Set-csUser -Identity $_.SipAddress -EnterpriseVoiceEnabled 0 -LineURI $null
}
Else
{
Set-CsUser -Identity $_.SipAddress -EnterpriseVoiceEnabled $true -LineURI $sipit -PassThru | Grant-CsVoicePolicy -PolicyName «Your PolicyName»
}
}

Надеюсь вам пригодиться данный скрипт. Жду вопросов и комментариев, лайков и перепостов 😉

Скачать готовый скрипт можно перейдя по линку. Не забудьте изменить вводные данные для скрипта используя описание выше.

UPD: Немного доработал скрипт под наши задачи. Посмотреть код можно в статье  «Включение Enterprise Voice на основе Voice Policy«

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *