Automatisierung des Setzens von Postfachrichtlinien in Exchange mit PowerShell

Melden
  1. Einleitung
  2. Verbindung zu Exchange herstellen
  3. Postfachrichtlinien verstehen
  4. Setzen von Postfachrichtlinien mit PowerShell
  5. Automatisierung und Planung
  6. Fehlerbehandlung und Reporting
  7. Zusammenfassung

Einleitung

Das automatisierte Setzen von Postfachrichtlinien in Microsoft Exchange kann die Verwaltung erheblich vereinfachen und konsistente Konfigurationen über viele Benutzerpostfächer hinweg sicherstellen. PowerShell ist hierfür das bevorzugte Werkzeug, da Exchange umfassend über die Exchange Management Shell oder Remote PowerShell verwaltet werden kann. Im Folgenden wird ausführlich erläutert, wie man Postfachrichtlinien mithilfe von PowerShell automatisiert setzen kann.

Verbindung zu Exchange herstellen

Bevor Postfachrichtlinien gesetzt werden können, muss eine Verbindung zum Exchange-Server bzw. zur Exchange Online Umgebung hergestellt werden. Bei On-Premises Exchange erfolgt dies meist direkt über die Exchange Management Shell, bei Exchange Online via Remote PowerShell. Für Exchange Online wird zunächst ein Session-Objekt aufgebaut und Import-Cmdlets ausgeführt. Ein typisches Beispiel für Exchange Online sieht folgendermaßen aus:

$UserCredential = Get-Credential

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Import-PSSession $Session -DisableNameChecking

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Sobald die Verbindung hergestellt ist, stehen Cmdlets zur Verwaltung der Postfachrichtlinien zur Verfügung.

Postfachrichtlinien verstehen

Postfachrichtlinien können verschiedene Bereiche betreffen, z.B. E-Mail-Adressrichtlinien, Archivrichtlinien, Speicherquoten oder mobile Gerätezugriffe. Typische Cmdlets zum Verwalten von Postfachrichtlinien sind Set-Mailbox (für Postfach-Eigenschaften inkl. Zuweisung von Richtlinien), Get-Mailbox (für Abfragen) und spezifische Cmdlets wie Set-ThrottlingPolicy oder Set-RetentionPolicy.

Setzen von Postfachrichtlinien mit PowerShell

Um eine Postfachrichtlinie automatisiert zu setzen, verwendet man in der Regel das Cmdlet Set-Mailbox mit relevanten Parametern. Zum Beispiel um einer Gruppe von Benutzern eine bestimmte Aufbewahrungsrichtlinie zuzuweisen, könnte man ein Skript schreiben, das alle Postfächer einer bestimmten OU oder mit einem bestimmten Filter ermittelt und danach die gewünschte Richtlinie setzt.

# Beispiel: Zuweisung einer Aufbewahrungsrichtlinie zu allen Postfächern einer bestimmten Abteilung$mailboxes = Get-Mailbox -ResultSize Unlimited -Filter {Department -eq "Vertrieb"}foreach ($mb in $mailboxes) { Set-Mailbox -Identity $mb.Identity -RetentionPolicy "Vertriebsrichtlinie"}

Dieser Vorgang lässt sich beliebig anpassen, z.B. um E-Mail-Adressrichtlinien zu setzen, indem der Parameter -EmailAddressPolicyEnabled $false und manuelle Adressen vergeben werden.

Automatisierung und Planung

Die obigen Skripte lassen sich in PowerShell-Skriptdateien speichern und über die Windows Aufgabenplanung (Task Scheduler) automatisch zu vordefinierten Zeiten ausführen. So kann gewährleistet werden, dass alle Postfächer regelmäßig auf neue Richtlinien geprüft und diese automatisch angepasst werden. Ebenso kann man komplexere Bedingungen im Skript hinterlegen, z.B. nach Last, Benutzerstatus oder anderen Attributen filtern.

Fehlerbehandlung und Reporting

Da automatisierte Änderungen potentielle Auswirkungen haben, empfiehlt es sich, im Skript eine Fehlerbehandlung mittels try/catch einzubauen und ein Reporting in Dateien oder per E-Mail zu implementieren. So behält der Administrator stets den Überblick über erfolgreich gesetzte Richtlinien oder auftretende Probleme.

foreach ($mb in $mailboxes) { try { Set-Mailbox -Identity $mb.Identity -RetentionPolicy "Vertriebsrichtlinie" -ErrorAction Stop Write-Output "Erfolgreich geändert: $($mb.Identity)" } catch { Write-Output "Fehler bei $($mb.Identity): $_" }}

Zusammenfassung

Das automatisierte Setzen von Postfachrichtlinien in Exchange mittels PowerShell erfolgt in mehreren Schritten. Zuerst wird eine Verbindung zum Exchange-Server hergestellt, danach werden die Zielpostfächer über Filter ermittelt. Anschließend werden die gewünschten Richtlinien mit Set-Mailbox oder ähnlichen Cmdlets gesetzt. Die Skripte lassen sich zeitgesteuert ausführen und mit Fehlerbehandlung sowie Protokollierung erweitern, um eine zuverlässige und nachvollziehbare Administration zu gewährleisten.

0
0 Kommentare