Главная > Lync, PowerShell > Enable existing email users for Lync Server

Enable existing email users for Lync Server

LyncServerLogo

PowerShell Скрипт, автоматизирующий заведение пользователя в Lync Server на основе его email адреса, аналогично, как мы делали для OCS тут — Enable existing email users for Communications Server:


Clear-Host
#################################################################################


# Илгиз Мамышев
# Power Shell. Включение Email-Enabled пользователей в Lync Server
# Версия: 03.11.2010
#################################################################################
Write-Host -foregroundcolor Green "Включение Email-Enabled пользователей в Lync Server"
Write-Host -foregroundcolor Green "Пожалуйста подождите.."

### Определим переменные
#################################################################################
$OU="ou=webzavod,dc=ad,dc=webzavod,dc=ru" #OU, в котором будем искать пользователей
$LyncServer="wz-Lync.ad.webzavod.ru" #Lync RegistrarPool
# Получить список политик: Get-CsVoicePolicy
$VoicePolicy="Внутренние и по России звонки"#Lync Voice Policy
# Получить список планов: Get-CSDialPlan
$DialPlan="SamaraProfile" #Lync Voice Dial Plan
# Получить список политик: Get-CSExternalAccessPolicy
$ExternalAccessPolicy="Allow Federation+Public+Outside Access" #Lync External Access Policy
$LogFile = "C:\Share\Scripts\Enable-CSEmailEnabledUsers\Enable-CSEmailEnabledUsers.log"
$dt = Get-Date -Format "dd.MM.yyyy HH:mm:ss"
#################################################################################

### Импортируем модуль с командлетами Lync Server
cd $env:UserProfile; Import-Module 'C:\Program Files\Common Files\Microsoft Lync Server 2010\Modules\Lync\Lync.psd1'

### Получим список пользователей в OU, не включенных в Lync Server, с заполненным полем WindowsEmailAddress, с незаполненным полем SIPAddress
$OUUsers = &{Get-CsAdUser -OU $OU -Filter {Enabled -ne $True} | Where-Object {$_.UserAccountControl -notlike "*AccountDisabled*"} | Where-Object {$_.WindowsEmailAddress -ne ""} | Where-Object {$_.SIPAddress -eq ""} };
### Завершим скрипт если нет пользователей для обработки
if ($OUUsers -eq $Null) {Write-Host -foregroundcolor Green "Нет пользователей для обработки. Завершение через 10 секунд..";Start-Sleep -s 10; exit};

### Включить пользователей в Lync Server
$OUUsers | Foreach-Object {Enable-CsUser -Identity $_.UserPrincipalName -RegistrarPool $LyncServer -SipAddressType EmailAddress}

### Отключить ВСЕХ пользоваателей Lync Server в конкретном OU (Пример. Для тестирования)
#Get-CsUser -OU $OU | Foreach-Object { Disable-CsUser -Identity $_.UserPrincipalName };

### Пауза 15 секунд для распространения изменений Lync Server
Write-Host -foregroundcolor Green "Пауза 15 секунд для распространения изменений Lync Server.."
Start-Sleep -s 15

### Настроить пользователей, который только что включили в Lync Server
Write-Host -foregroundcolor Green "Настройка пользователей Lync Server.."
$OUUsers | Set-CSUser -EnterpriseVoiceEnabled $True
$OUUsers | Grant-CSVoicePolicy -policyname $VoicePolicy
$OUUsers | Grant-CSVoicePolicy -policyname $VoicePolicy
$OUUsers | Grant-CSDialPlan -policyname $DialPlan
$OUUsers | Grant-CSExternalAccessPolicy -policyname $ExternalAccessPolicy

### Выведем информацию о настроенных пользователях
Write-Host -foregroundcolor Green "Lync Server Summary.."
"" + $dt + " Enabled Users for Lync Server" >> $LogFile
$OUUsers | Get-CSUser | Format-Table DisplayName, SipAddress, Enabled >> $LogFile

exit

Скачать скрипт Enable-CSEmailEnabledUsers.ps1

Копируем скрипт на Lync Server и настраиваем его на периодический запуск в планировщике задач Windows командами:

REM Изменим ExecutionPolicy
%windir%\system32\windowspowershell\v1.0\powershell.exe Set-ExecutionPolicy Unrestricted

REM Создадим задание в Планировщике заданий. Запуск PowerShell скрипта ежедневно в 13:00, запуск от учетной записи Системы
schtasks /create /tn "Enable-CSEmailEnabledUsers" /tr "%windir%\system32\windowspowershell\v1.0\PowerShell.exe -command C:\Share\Scripts\Enable-CSEmailEnabledUsers\Enable-CSEmailEnabledUsers.ps1" /sc daily /st 13:00 /ru System

З.Ы.:
Еще материал на эту тему — PowerShell Script to create new user, enable for Exchange, UM and Lync Server

Реклама
Рубрики:Lync, PowerShell
  1. 26.05.2011 в 09:27

    $OUUsers | Grant-CSVoicePolicy -policyname $VoicePolicy
    $OUUsers | Grant-CSVoicePolicy -policyname $VoicePolicy

    повтор или так задумано?

  2. Игорь
    29.06.2012 в 11:37

    Доброго дня!
    Подскажите пожалуйста, учётка из под которой запускается скрипт, какими правами на Lync Server должна обладать? (в какую группу безопасности CS… её нужно включить?). Спасибо.

  1. No trackbacks yet.

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: