Montag, 27. September 2010

Move-Mailbox Script für Exchange 2003/2007 Migration

Hallo zusammen,

wir hatten im aktuellen Projekt eine Anforderung, haufenweise (weit mehr als 10.000 Benutzer) von Exchange 2003 nach Exchange 2007 zu verschieben. Genauer gesagt durften die Benutzer erst abends verschoben werden um den normalen Geschäftsbetrieb nicht zu beeinträchtigen.
Da wir hier wahrscheinlich extrem viel Zeit gebraucht hätten, haben wir uns ein PowerShell Scritp geschrieben, welches gleich mehrere Dinge auf einmal abdeckt:

  • Verschieben alle Postfächer einer bestimmten Datenbank
  • Verschieben alle Benutzer der bestimmten Datenbank, die sich seit Datum X nicht mehr angemeldet haben

Das hat zum Vorteil, dass wir tagsüber extrem viel Postfächer verschieben konnten, da eben nur die Postfächer einer bestimmten Datenbank verschoben worden sind, deren Benutzer seit dem Datum X nicht mehr am Exchange angemeldet waren. Da wir diese Info nur mittels WMI Abfrage von Exchange 2003 auslesen können ist das Script in diesem Fall etwas länger geworden:


$arr = @() ; Get-WmiObject -ComputerName %EX2003ServerName% -Namespace ROOT\MicrosoftExchangeV2 -Class Exchange_Mailbox Where-Object { $_.StoreName -eq "EX2003DatenbankName" -and $_.LastLogonTime -lt "20100813" } % { $arr += $_.MailboxDisplayName } ; $arr get-mailbox Move-Mailbox -TargetDatabase "EX2007Servername\Ex2007SGName\EX2007Datenbankname" -MaxThreads 12 -IgnorePolicyMatch -confirm:$false

Viele Grüße, Jens

Keine Kommentare:

Kommentar veröffentlichen