Freitag, 27. März 2015

Exchange 2013 - Maintenance Mode

In einer hoch verfügbaren Exchange Organisation lassen sich einzelne Exchange Server der Organisation warten, ohne dass die User bei ihrer Arbeit gestört werden. Der Prozess, einen der Exchange Server in den Maintenance Mode zu versetzen, ist aber etwas mühsam, sprich, es sind diverse Schritte nötig. Daher liegt es auch nahe, dies mit Hilfe eines Scripts zu erledigen. Ich bin nicht wirklich der Scripter, doch es gibt ja zum Glück begnadete Scripter, welche ihre Scripts auch immer wieder mit der Welt teilen. In diesem Post will ich zeigen, wie der Prozess, einen Exchange Server in den Maintenance Mode zu versetzen, mit Hilfe der Scripts von Michael Van Horenbeeck vereinfacht werden kann.


Zuerst einmal benötigen wir natürlich das Script. Dies kann hier herunter geladen werden:

Das Script kann so wie es ist direkt verwendet werden, doch es geht noch einfacher. Dazu binde ich das Script in mein Power Shell Profil ein.

Dazu lege ich die beiden Scripts Start-ExchangeServerMaintenanceMode.ps1 und Stop-ExchangeServerMaintenanceMode.ps1 auf meinen Exchange Servern unter dem Pfad «C:\Scripts\include» ab. Natürlich könnt ihr auch einen anderen Pfad wählen.

Nun erstelle ich ein Power Shell Profil, sofern ich noch keines habe. Ob schon ein Profil vorhanden ist könnt ihr in der Exchange Power Shell mit folgenden Befehl prüfen:

test-path $Profile

Kommt dabei «False» raus, ist noch kein Power Shell Profil vorhanden.










Mit folgenden Befehl wird nun ein Power Shell Profil erstellt:

new-item -path $profile -type file -force







Im File, welches in der Ausgabe des letzten Befehls ausgegeben wurde, wird nun folgendes eingefügt:

Set-Location "C:\Scripts"
 
Get-ChildItem ".\include" | Where {$_.Name -like "*.ps1"} | ForEach {
 
Write-Host "[Including $_]" -ForegroundColor Green
. .\include\$_

}









Falls ihr einen anderen Pfad gewählt hab, müsst ihr dies hier natürlich anpassen.

Beim nächsten Start der Exchange Power Shell werden die Scripts unter dem Pfad «C:\Scripts\include» automatisch mitgeladen und können direkt verwendet werden:















Diese Schritte müssen nun nicht mehr jedes mal durchgeführt werden. Ab jetzt könnt ihr eure Exchange Server wie folgt in dem Maintenance Mode versetzen.

Zuerst einmal sorgen wir dafür, dass sich auf dem Exchange Server, welcher gewartet werden soll, keine aktive Datenbanken mehr haben. Dies mache ich jeweils über die Verwaltungswebsite:














Hier kann angegeben werden, auf welchen DAG Member die Datenbanken verschoben werden sollen oder ihr lasst Exchange selbst die beste Option finden:































Nun noch kontrollieren, dass wirklich keine Datenbank mehr auf dem zu wartenden Server aktiv sind:
















Weiter geht es nun wieder in der Shell. Mit folgendem Befehl wird nun der Server SRV300 in den Maintenance Mode versetzt und alle Transportaufgaben auf den Server SRV302 verschoben:

Start-ExchangeServerMaintenanceMode -Server SRV300 -TargetServerFQDN SRV302.corp.itrain.ch






















Nun noch prüfen, ob der Server wirklich im Maintenance Mode ist:

Get-ServerComponentState SRV300 | FT Component,State -Autosize













Nun könnt ihr in Ruhe eure Wartungsarbeiten durchführen. Wenn ihr damit fertig seid, holt ihr den Server wieder in den aktiven Modus zurück:

Stop-ExchangeServerMaintenanceMode -Server SRV300

















Und natürlich kontrolieren wir wieder, ob der Server nun wirklich nicht mehr in Maintenance Mode ist:

Get-ServerComponentState SRV300 | FT Component,State -Autosize
















2 Kommentare:

  1. Hallo! Vielen Dank für den Bericht. Ich habe eine Frage. Das Script sorgt doch auch dafür, dass die aktiven Datenbanken auf dem zu wartenen Server auf den anderen Node geschoben werden - wieso machst Du das hier manuell über die ECP?

    Vielen Dank und liebe Grüße
    Nico

    AntwortenLöschen
  2. Hallo TR2N
    Als ich den Post erstellt habe war das nicht so. Eventuell hat Michael das Script erweitert.

    Gruss
    Beat

    AntwortenLöschen