20 stycznia 2008

One liner do uruchamiania zatrzymanych serwisów Exchange'a 2007

Miałem niedawno problem z uruchamianiem się serwisów Exchange 2007, ze względu na współdzielenie maszyny z kontrolerem domeny. Microsoft opisuje ten problem w artykule "Exchange 2007 services cannot start automatically after you install Exchange 2007 on a global catalog server"
http://support.microsoft.com/kb/940845

Rozwiązanie to jednak nie jest doskonałe (tak samo zresztą jak instalacja Exchange na kontrolerze domenysmile_wink). Być może jest już gdzieś opublikowany, ale ja takiego nie znalazłem, więc pokusiłem się o krótki skrypt w Power Shellu (tak popularne ostatnio one-linery). :

get-wmiObject win32_service | where { $_.StartMode -eq "Auto"} | ForEach-Object `
      {if (($_.State -eq "stopped") -and ($_.name -match "MSExchange")){ start-service -inputobject $_.name}}

Skrypt jest prosty - poprzez WMI pobiera listę usług uruchamianych automatycznie (to ważne, bo jest kilka usług Exchange instalowanych w trybie manual i nieuruchamianych), następnie dla każdego zwróconego obiektu sprawdzany jest warunek, czy zawiera w nazwie ciąg MSExchange i jeżeli ma status stopped, to uruchamia ten serwis. OCzywiście możemy uruchamiać taki skrypt cyklicznie, albo odwołując siędo zdalnego komputera, jeżeli nasza instalacja ma więcej niż jeden serwer Exchange.

Brak komentarzy: