Mailbox in eine andere Datenbank verschieben (2/3)
Ob per Powershell deaktivieren oder eine Mailbox in eine andere Datenbank verschieben.
In der 3-teiligen Serie „Exchange und PowerShell – IDM und E-Mail“ beschreiben wir, wie Sie häufige E-Mail-Themen leicht mit der PowerShell lösen.
Die PS-Skripte sind unabhängig vom IDM-Portal – sparen in Kombination mit diesem der IT aber viel Arbeit.
Haben Sie vor Postfächer zu deaktivieren und in eine andere Datenbank zu verschieben? Dann sollten Sie das Postfach zunächst über eine Migration in die gewünschte Datenbank verschieben. In unserem letzten Artikel haben wir uns angesehen, wie Sie Exchange Mailboxen deaktivieren können. Heute erklären wir Ihnen, wie Sie ein Postfach in eine andere Datenbank verschieben.
Index
Exchange Postfach via PowerShell in andere Datenbank migrieren
Das Vorgehen kann in zwei aufeinanderfolgenden Schritten beschrieben werden. Als erstes benötigen Sie eine PowerShell-Session nach Exchange und im zweiten Schritt läuft der eigentliche Verschiebevorgang des Postfachs ab. Mit dem IDM-Portal diese Vorgänge auf 2 bis 3 Klicks reduziert und delegiert werden. Der Abteilungsleiter oder HR-Kollege wird das Skript selbst nie sehen und kann durch beschränkte Obeflächen und einen Security-Layer auch keine Fehler machen.
Für die manuelle Vorgehensweise gilt gehen Sie wie folgt vor:
PowerShell Session für Exchange aufbauen
Um remote auf den Exchange Server zugreifen zu können, benötigen Sie eine PowerShell Session. Den Server erreichen Sie über folgende URL: https://<Name oder IP des Servers>/PowerShell
1 |
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://exc01/PowerShell/ -Authentication Kerberos |
Um nicht die komplette PS-Session importieren zu müssen, geben Sie die benötigten Cmdlets „New-MoveRequest“, „Get-MoveRequest“ und „Remove-MoveRequest“ explizit an:
1 |
Import-PSSession -Session $session -CommandName New-MoveRequest, Get-MoveRequest, Remove-MoveRequest |
Exchange-Postfach verschieben mit „New-MoveRequest“
Um mit dem Verschieben des Postfaches beginnen zu können, wird das Cmdlet „New-MoveRequest“ verwendet. Diesem wird die Identity der Mailbox bzw. des Mailusers und die Zieldatenbank übergeben.
Die Identity kann z.B. der DistinguishedName, die GUID, der UPN usw. sein (weitere Informationen zum PowerShell Cmdlet finden sie bei Microsoft)
1 2 3 |
$newDatabase = "PF deaktiviert" $alias = "maximilian.muster" New-MoveRequest -Identity $alias -TargetDatabase $newDatabase -Confirm:$False |
Um bei diesem Befehl nicht zu einer Bestätigung aufgefordert zu werden, setzen Sie der Parameter Confirm auf False.
Mit „Get-MoveRequest“ lässt sich der Status des Migrationsprozesses nachverfolgen. Hier ist ein Beispiel, wie Sie sich alle 5 Sekunden den Status ausgeben lassen kann:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$request = Get-MoveRequest -Identity $alias $status = "new" Do { Sleep 5 Try{ $request = Get-MoveRequest -Identity $alias $status = $request.status } Catch{ $status = "Completed" } $status } While $status-ne "Completed" |
Sollten Sie ein altes Exchange 2010 nutzen, müssen Sie das Cmdlet „Remove-MoveRequest“ für abgeschlossene Verschiebeprozesse verwenden, um das InTransit-Flag aus dem Postfach zu entfernen:
1 |
Remove-MoveRequest -Identity$alias-Confirm:$False |
Bei neueren Exchange-Versionen ist dies nicht erforderlich. Dort wird „Remove-MoveRequest“ nur zum Abbrechen eines Verschiebeprozesses verwendet. Daher müssen Sie im oberen Beispiel der Status-Abfrage ein Try-Catch verwenden, da der Verschiebeprozess nach Abschluss automatisch gelöscht wird.
Zum Schluss schließen Sie die PS-Session wieder:
1 |
Remove-PSSession$session |
PS-Skript: Mailbox in eine andere Datenbank verschieben
Hier noch einmal das vollständige Powershell-Skript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://exc01/PowerShell/ -Authentication Kerberos Import-PSSession-Sessio$session-CommandName New-MoveRequest, Get-MoveRequest,Remove-MoveRequest $newDatabase = "PF deaktiviert" $alias = "maximilian.muster" New-MoveRequest -Identity $alias -TargetDatabase $newDatabase -Confirm:$False $request = Get-MoveRequest -Identity $alias $status = "new" Do { Sleep 5 Try{ $request = Get-MoveRequest -Identity $alias $status = $request.status } Catch{ $status = "Completed" } $status } While ($status -ne "Completed" ) #Remove-MoveRequest -Identity $alias -Confirm:$False Remove-PSSession, $session |
Automatisiert Postfach verschieben mit IDM-Portal – auch ohne IT
Ein automatisiertes Verschieben ist mit dem IDM-Portal möglich, z.B. um die Mailbox eines deaktiviertes Users zu migrieren. Grundsätzlich ist das Verwalten von Benutzerkonten mit Start- und Enddatum ist in AD/M365 recht schwierig. Da Sie aber mit PowerShell problemlos Mailboxen in Ihrem Exchange zuordnen zuordnen können, hilft Ihnen das IDM-Portal dies auch zeitgesteuert für Benutzer und Ihre Mailboxen (gemäß der Unternehmensrichtlinien) durchzuführen. Da die Verwaltung von Benutzerkonten viel Arbeit für die IT macht, kann diese mit dem IDM-Portal auch durch Kollegen, Helpdesk oder Manager übernommen werden. Wie z.B. bei geplanten Abwesenheiten ein Konto zu löschen oder inaktiv setzen oder die Mailbox zu deaktivieren oder oder…
Mit dem IDM-Portal und seinen Automation-Funktionen automatisieren Sie jetzt Prozesse und bearbeiten bestimmte Aufgaben vorab.
Darüber hinaus haben Sie aber auch die Möglichkeit, die Pflege dieser Mitarbeiterkonten zu delegieren. Die Benutzerfreundlichkeit der Software IDM-Portal und der direkte Zugriff auf das AD/Microsoft 365 machen die Arbeit Ihrer IT-Abteilung entspannter.
Haben Sie konkrete Fragen zu Exchange und Exchange online und der Verbindung mit dem IDM-Portal? Kontaktieren Sie uns gern: