Script für Kalenderberechtigungen erstellen

Tracking, Tracking, Tracking. Kannste dir denken. Geht das fit?

Wenn du einen Button klickst, setze ich ein Cookie, damit ich weiß, was du geklickt hast. Google Analytics. Ich frage einmal pro Browser-Sesison.
Sollte ein Fehler auftreten, wird dieser wohl oder übel auch in unserem generierten Script erscheinen. Also prüft das, was Script, was dieses Script generiert. Ich hafte für den Mist nicht, den ich ggf. verbrechen könnte

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: