Script für Kalenderberechtigungen erstellen
Folgende, wahrscheinlich sehr unkonventionelle, Situation: wir haben einen lokalen Exchange. Wir wollen den in die Cloud schupsen. Aber wir wollen kein AD-Join. Der Kunde hat etliche hunderte Postfächer und untereinander Kalenderfreigaben, die natürlich keiner irgendwo dokumentiert hat – schockt also maximal, das Projekt.
Was dieses Script macht, kann ich nicht beschreiben, ohne, dass es verwirrt – es liest Berechtigungen für die Kalender aus, und gibt ein Script aus, welches diese Berechtigungen setzt. Annahme hierbei: Benutzernamen und Alias sind beim lokal- und Zielserver identisch (also [email protected] heißt auf dem Quell- und Ziel-Server auch „Tino Ruge“). Sonst meldet der Ziel-Exchange, dass er den entsprechenden Benutzer nicht findet. Obviously.
foreach($Mailbox in $(Get-Mailbox)) {
foreach($Permission in $(Get-MailboxFolderPermission "$($Mailbox.Alias):\Kalender")) {
Write-Host "Add-MailboxFolderPermission -Identity $($Mailbox.Alias):\Kalender -AccessRights $($Permission.AccessRights) -User `"$($Permission.User)`""
}
}
Das gesamte Script können wir nun entweder bei einem lokalen Exchange ausführen, um das generierte Script in einem Office 365-Tenant auszuführen, anders herum, lokal zu lokal, Office 365 zu Office 365, usw.
Bei Office 365 müssen wir vorher eine Remote-Powershell-Verbindung aufbauen; siehe folgender Artikel, der untere Teil: