Neben der Domänen-Umstellung sind wir auf der Arbeit auch gerade dabei, unseren alten Linux-Mailserver mit einem Exchange 2007-Server zu ersetzen.

Der Exchange-Server ist schon installiert, aber es mussten noch die Postfächer angelegt werden, damit wir später die Mails per IMAP vom alten Server migrieren können. Und da Administratoren grundsätzlich faul sind, wollte ich die über 150 Postfächer der Benutzer nicht per Hand anlegen! ;)

Eine gute Gelegenheit sich mit der neuen PowerShell von Windows bekannt zu machen, war es ebenfalls.

Man benötigt eine Textdatei, die pro Zeile einen Benutzernamen enthält, und muss den Pfad hierzu in der Datei PostfaecherAnlegen.ps1 anpassen. Danach kann man das Script über die Exchange-Verwaltungsshell aufrufen.

PostfaecherAnlegen.ps1

#-------------------------------------------------------------------------------
# An die eigenen Bedürfnisse anpassen...
#-------------------------------------------------------------------------------
$sFilePath = "C:\Temp\benutzerliste.txt"
$sServer = "servername"
$sDatabase = "Mailbox Database"
#-------------------------------------------------------------------------------

$oFile = Get-Content "$sFilePath"
foreach ($sUser in $oFile) { #Für alle Benutzer...
  $oUser = Get-User -Identity "$sUser" -ea SilentlyContinue
  if ($oUser -ne $null) { #Wenn der Benutzer existiert...
    $oMailbox = Get-Mailbox -Identity "$sUser" -ea SilentlyContinue
    if ($oMailbox -eq $null) { #Wenn E-Mail NICHT aktiviert wurde...
      $sUser + ": E-Mail aktivieren..."

      Enable-Mailbox -Identity "$sUser" -Alias "$sUser" -Database "$sServer\$sDatabase"
    }
    else { #Wenn E-Mail bereits aktiviert wurde...
      $sUser + ": E-Mail bereits aktiviert!"
    }
  }
  else { #Wenn der Benutzer NICHT existiert...
    $sUser + ": Nicht vorhanden!"
  }
}