Uruchamianie skryptów na serwerze Exchange

Skrypty PowerShell używane do zarządzania środowiskiem serwera Exchange wymagają użycia specjalnego modułu, obsługującego polecenia serwera Exchange. W kodzie skryptu, komenda dodająca moduł, powinna zostać umieszczona na jego początku.

W przypadku serwera Exchange 2010: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
W przypadku serwera Exchange 2013/2016: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn

Innym rozwiązaniem jest uruchomienie skryptu RemoteExchange.ps1 i wywołanie komendy Connect-ExchangeServer -Auto. Poniższy fragment kodu należy umieścić na początku własnego skryptu:

Serwer Exchange 2010:
. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -Auto

Serwer Exchange 2013/2016:
. 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'
Connect-ExchangeServer -Auto

To drugie rozwiązanie jest bardziej skuteczne, zwłaszcza podczas uruchamiania skryptów jako zadań w Harmonogramie zadań. W takim przypadku uruchomienie skryptu tą drogą wymaga wywołania konsoli PowerShell wraz z poniższymi argumentami:

Program/skrypt: powershell.exe
Dodaj argumenty (opcjonalne): –noprofile –executionpolicy bypass -NonInteractive -WindowStyle Hidden -file "<Ścieżka do skryptu>"

Oczywiście całe zadanie wymaga, aby na zakładce Ogólne zaznaczona była opcja Uruchom z najwyższymi uprawnieniami i wybrana opcja Uruchom niezależnie od tego, czy użytkownik jest zalogowany. Konto wybrane do uruchomienia zadania powinno posiadać niezbędne uprawnienia do wykonania działań w środowisku pocztowym. Najbezpieczniejszą metodą jest utworzenie zadania na stacji roboczej z zainstalowaną konsolą do zarządzania serwerem Exchange (Exchange Management Shell Tools). Oczywiście w celu ułatwienia całej konfiguracji można utworzyć zadanie bezpośrednio na serwerze Exchange. Warto jednak zapoznać się z zaleceniami firmy Microsoft, odnośnie ochrony środowiska pocztowego przed nieporządanym dostępem opublikowanymi na stronie The Microsoft Exchange Team Blog.

Dodatkowe informacje:
- The Microsoft Exchange Team Blog: Protecting against Rogue Administrators