Управляем Exchange 2010 и Lync 2010 из одной сессии PowerShell


ex

В новом и интересном PowerShell 3 есть замечательная штука- автоматическая загрузка модулей. Теперь, если вы забыли загрузить модуль перед выполнением командлета, консоль не будет вас ругать, а просто автоматически загрузит необходимый модуль. Правда, это сказывается на скорости выполнения скрипта, поэтому, конечно нужные модули на каждый день лучше подгружать сразу в профиль. А как быть простым парням с  PowerShell версии 2?

 Локально (установлены инструменты управления)

Если консоли Exchange 2010 Management tools и Lync Server 2010 Management Tools установлены на вашей рабочей станции, добавьте небольшой фрагмент кода в ваш профиль PowerShell. Если вы еще не устанавливали профиль, то самое время это сделать, запустив Get-Help about_Profiles. Результат похож на выполнение логон скрипта, только для сессии PowerShell

#Загружаем командлеты Exchange 
. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

#Импортируем модуль Lync 
Import-Module Lync

Как видно, здесь происходит  выполнение скрипта RemoteExchange.ps1, который устанавливается вместе с инстументами управления Exchange. Скрипт загружает командлеты и специфические функции Exchange в консоль, одна из которых (Connect-ExchangeServer) автоматически подключается к серверу Exchange в локальном сайте. После этого импортируется и модуль Lync.

Удаленно (инструменты управления не установлены)

Устанавливать инструменты управления, конечно, совсем не обязательно- достаточно будет использовать  удаленное подключение PowerShell. Достаточно будет вставить в профиль следующий код, не забыв обновить в нем имена серверов:

#Импортируем командлеты Exchange 
$exch = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://exchange1/powershell
Import-PSSession $exch

#Импортируем модуль Lync 
$lyncOptions = New-PSSessionOption -SkipRevocationCheck -SkipCACheck -SkipCNCheck
$lync = New-PSSession -ConnectionUri https://lync1/ocspowershell `
-SessionOption $lyncOptions `
-Authentication NegotiateWithImplicitCredential

Import-PSSession $lync

Этот код импортирует командлеты для Exchange 2010 и Lync Server 2010 в одну консоль, используя удаленное подключение. Предполагается, что для этого имеются необходимые полномочия на конечных серверах.

Замечу также, что для импорта командлетов Lync необходимо указать https привязку. Поскольку виртуальная директория OCSPowerShell на IIS требует SSL, и по умолчанию защищена самоподписанным сертификатом, мы используем здесь параметр игнорирования строгой проверки SSL.

Для чего мы все это делали?

Нетрудно догадаться, что все проделанное выше ставит перед собой одну простую цель- сокращение запущенных консолей и упрощение администрирования. Давайте попробуем подключить для пользователя почтовый ящик и lync одновременно:

Enable-Mailbox -Identity E.tarasov |
  Select-Object -Expand Identity |
    Enable-CsUser -SipAddressType EmailAddress -RegistrarPool pool.mylynclab.ms

Командлет Enable-Mailbox создает почтовый ящик для существующего пользователя в Active Directory, и также выводит свойство Identity пользователя по завершении. Передав этот объект по конвейеру Enable-CsUser,  мы убъем двух зайцев одной строкой кода. New-Mailbox работает точно также.

Реклама

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

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

Логотип WordPress.com

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

Фотография Twitter

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

Фотография Facebook

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

Google+ photo

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

Connecting to %s