Exchange Server 2010, Больше PowerShell!

Больше PowerShell-а, еще больше! Я бы начал очередную заметку про Exchange Server 2010 с этих слов, впрочем, что я уже и сделал :-)

Для меня PowerShell — это то, чего мне всегда не хватало в администрировании (думаю, и для других тоже). С выходом Exchange Server 2007 в этом убедились все администраторы Exchange Server. Рассказывать о прелестях и возможностях PowerShell – выходит за рамки моего стиля Pauca Verba (немногословно), да и в интернете вы найдете много профессионально написанных статей на эту тему, а мне дилетанту в этом деле (написании статей, заметок) хочется рассказать о новых приятных “фишках” добавленных в Exchange Server 2010 (далее E14) по части PowerShell (PS)

Пожалуй самое первое что заметит администратор после установки E14, по части PowerShell, – это то, что иконок запуска окна Exchange Management Shell (EMS) стало две! Почему две? (а я вот о чем «Больше PowerShell-а, еще больше!»)

Exchange Management Shell
Exchange Management Shell (Local Powershell)

Дело в том, что в E14, PowerShell всегда соединяется с сервером через Internet Information Server к каталогу PowerShell, независимо от того, подключаетесь на локальный сервер или на удаленный сервер, тут WinRM является механизмом связи между Shell сессией и сервером E14.

При запуске Exchange Management Shell, происходит подключение к серверу и загрузка доступных cmdled-ов с сервера

Пример подключения EMS к серверу,


 
По умолчанию ярлык запуска EMS содержит параметры
C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto

Как нетрудно догадаться что делает -auto, можно создать дубликат ярлыка с параметрами, пример:
Connect-ExchangeServer -ServerFQDN e14ex02.corp.postmaster.ge
и после запуска работать сразу с удаленным сервером, или в уже запушенном окне переключатся меж серверами (или организациями) командой Connect-ExchangeServer,

Cтоит заметить что данная команда доступна только в RemoteExchange.ps1. Вы наверно подумаете для чего так намудрили и теперь подключение происходит таким вот образом,

A сделано это потому что была ведена Role Based Access Control (RBAC) которая после проверки вашего доступа и делегированных вам прав, позволяет работать в повершелл только с теми cmdlet-ами на роли которых вы имеете права, тем самым при запуске вы получаете своё окружение PS. Также стоит заметить что теперь и Exchange Management Console (EMC) работает по принципу соединения IIS и работа WinRM независимо от того, подключаетесь ли вы на локальный сервер или на удаленный.

Пример подключения EMC к другому серверу тут: про Exchange Online

Тут также присутствует RBAC и вы получаете только то что вам дано и не более. Вы спросите а как же локальная работа на сервере? Для этого мы используем Exchange Management Shell (Local Powershell) который использует уже знакомый нам
C:\Program Files\Microsoft\Exchange Server\V14\bin\Exchange.ps1

Тут все как раньше

Кстати, кто устанавливал Exchange Server 2010 Beta на Windows Server 2008 R2 RC (6.1.7100), наверно встретился с несовместимостью в работе WinRM+PowerShell.
Вот тут-то и спасает Exchange Management Shell (Local Powershell) которая работает исправно а вот о EMC и EMS сказать подобное пока нельзя, обещали исправить в следующих версиях E14.

«Что еще?» – спросите вы.
Обратите внимание на окно свойства пользователя, значок PowerShell, теперь все что было изменено можно видеть как это выглядит в PS:

Тем самым можно к примеру не зная как это делается с PS всегда научится у того же EMC, далее вам уже нечего не стоит придумать некий ваш скрипт и “за пэйплайнить” несколько скриптов сразу. Очень полезно тем кто незнаком с повершел, можно всегда видеть что происходит на самом деле в PowerShell

Больше PowerShell-а, еще больше!? Ага, вот еще, теперь все проделанные команды можно видит еще и виде лога проделанной работы, все действия проделанные с консоли EMC, логируются в отдельном окне и по завершению работы можно сохранить и заодно посмотреть что же вы 3-мя кликами мыши наделали в PowerShell:

Еше PowerShell?
А как вам логи всего, что происходит в PowerShell, так еще и в удобном доступном месте к примеру в почтовом ящике?
Новая фишка Administrator Audit Logging, как она работает?

Для начала сконфигурируем ее,
Запускаем наш Exchange Management Shell (Local Powershell), и набираем:
Set-AdminAuditLogConfig -AdminAuditLogEnabled $True

И на заранее созданный почтовый ящик adminauditlog@postmaster.ge направляем наши PowerShell логи:
Set-AdminAuditLogConfig -AdminAuditLogMailbox adminauditlog@postmaster.ge

Теперь все проделаные нами действия будут приходить нам на заданый почтовый яшик,

Подробно о команде Set-AdminAuditLogConfig можно как всегда посмотреть командой
get-help Set-AdminAuditLogConfig –full
можно сконфигурировать на запись в лог конкретных действий к примеру только
set*
или
set-mailbox* и так далее.

И в заключении я могу сказать одно что в Exchange Server 2010 для начинающих только работать в Exchange Management Shell открываются новые возможности в изучении и познании работы EMS, если раньше мы могли довольствоваться только “выходным содержимым завершившейся команды в визарде” и ее копированием, то теперь можно пожалуй в любом месте сменив любой параметр предварительно увидеть как это выглядит в PowerShell, видеть что происходит на протяжении всей сесии работы, команды повершела, логировать их и получать на маил, ну и теперь скажите что
EXCHANGE 14 ROCKS! :-)

© Arman Obosyan

MaxMVP Exchange 2007, Exchange 2010

  1. Алексей
    14 Май 2009 в 20:40 | #1

    В статье подробно расписано и понятно. Наконецто я разобрался

  2. Семен Шишкин
    5 Июль 2009 в 10:03 | #2

    +1 к предыдущему комменту :)

  3. 26 Июль 2009 в 12:24 | #3

    Автору памятник нужно поставить за такое!:)

  4. 19 Август 2009 в 18:34 | #4

    Спасибо, только не посмертный :)

  1. Пока что нет уведомлений.
Improve the web with Nofollow Reciprocity.