Exchange 2010/2013: Berechtigungen auf Ordner und Unterordner in einem Postfach vergeben

Hier noch ein kleines Script, welches Berechtigungen auf Ordner und Unterordner in einem Postfach für Benutzer vergibt. Leider gibt es bisher nicht die Möglichkeit Rechte innerhalb eines Postfachs zu vererben. Daher hier ein kleiner Workaround:

<#
---------------------------------------------------------------------------------------
www.frankysweb.de
by Frank Zöchling
---------------------------------------------------------------------------------------
#>
$mailbox = read-host "Postfach"
$folder = read-host "Postfach Ordner"
$user = read-host "Benutzer"
$berechtigung = read-host "Berechtigung"
$folderpath = "$mailbox" + ":\" + "$folder"
$mailboxfolders = get-mailboxfolder $folderpath -recurse
foreach ($mailboxfolder in $mailboxfolders)
{
$folderid = $mailboxfolder.Identity
add-MailboxFolderPermission $folderid -user $user -AccessRights $berechtigung
}

Das Script wie gewohnt in eine PS1 Datei kopieren und ausführen. Informationen zu den möglichen Berechtigungen und ein Script welches die Rechte auf einer ganzen Datenbank setzt, gibt es hier:

https://www.frankysweb.de/exchange-2010-script-fr-berechtigungen-auf-postfach-ordner-einer-mailboxdatenbank/

Update: Bei Exchange 2013 funktioniert der Befehl „get-mailboxfolder“ nicht mehr für andere Benutzer, daher hier eine Version des Scripts für Exchange 2013:

<#
---------------------------------------------------------------------------------------
www.frankysweb.de
by Frank Zöchling
---------------------------------------------------------------------------------------
#>
$mailbox = read-host "Postfach"
$folder = read-host "Postfach Ordner"
$user = read-host "Benutzer"
$berechtigung = read-host "Berechtigung"
$mailboxfolders = Get-MailboxFolderStatistics $mailbox | Where {$_.FolderPath -match $folder}
foreach ($mailboxfolder in $mailboxfolders)
{
$folderid = $mailboxfolder.folderpath.replace("/","\")
$folderid = "$mailbox" + ":" + "$folderid"
Add-MailboxFolderPermission $folderid -User $user -AccessRights $berechtigung
}

8 Gedanken zu „Exchange 2010/2013: Berechtigungen auf Ordner und Unterordner in einem Postfach vergeben“

  1. Hi,
    bin das erste mal hier und hätte da eine Frage zum Script.
    Wie ist das mit dem Satz „Das Script wie gewohnt in eine PS1 Datei kopieren und ausführen.“ gemeint?

    Antworten
  2. Vielen Dank für dieses tolle Skript.
    Was ist denn aber wenn ich nur den Posteingang freigeben möchte? Wie kann ich dein Skript so anpassen, dass er die Unterordner in Ruhe läßt?
    Hast du da einen Tipp für mich?
    vg
    Roland

    Antworten
  3. Tolles Script. Problem habe ich aber mit Ordner die ein “ / “ im Namen haben. Fehler Ordner „abc / def“ kann nicht gefunden werden. Kann man das Problem umschiffen?

    VG Andreas

    Antworten
  4. Hallo,

    ich habe die Rechte für „Standard“ geändert und möchte sie auf alle Unterordner anwenden. Leider wird ja in der GUI nur ein Benutzer, nicht eine Gruppe akzeptiert. damit wäre es wesentlich einfacher.

    Wie vererbe ich nun via Script die geänderte Rechte von „Standard“ auf die vorhandenen Unterordner (sehr viele)?

    Vielen dank für Hilfe dazu!

    Antworten
  5. Hallo,
    vielen Dank für das tolle Script. Ich hab jetzt nur ein Problem. In vielen Unterordnern hat der User einen \ stehen (z.B. 2014\15 als Ordnername). Das wird mir immer als ? ausgegeben und die Berechtigungen werden nicht gesetzt, da der Ordner so nicht gelesen werden kann. Wie kann ich den \ abfangen?

    Vielen Dank für die Hilfe

    Antworten
  6. Ist zwar sehr alt, aber vielleicht doch noch für jemanden hilfreich, der über das Problem mit dem Slash stolpert.

    Habe es zwar noch nicht ausprobiert, aber vielleicht wird es jemandem weiterhelfen :)

    Hier mein Fund auf https://social.technet.microsoft.com/Forums/de-DE/3e7133fb-d766-4782-b68f-6b7c760fc430/zugriff-auf-fremde-postfcher-per-powershell-feiner-abstufen?forum=exchange_serverde

    Sind Slashs in den Ordnernamen, dann funktioniert die Syntax nicht, weil diese durch Get-MailboxFolderStatistics als Fragezeichen zurückgegeben werden. Hier muß an das erste
    .Replace(„/“,“\“)

    ein zweites angehängt werden
    .Replace([char]63743,“/“)

    Antworten

Schreibe einen Kommentar