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 FilesMicrosoftExchange ServerV14binRemoteExchange.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 FilesMicrosoftExchange ServerV14binExchange.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

5 thoughts on “Exchange Server 2010, Больше PowerShell!”

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

Leave a Reply

Your email address will not be published.