Exchange 2010: Berechtigungen auf einzelne Postfach Ordner für alle Postfächer auslesen

Hier mal wieder ein Script aus der Kategorie Quick and Dirty. Das Script liest alle Berechtigungen für alle Ordner innerhalb der Postfächer der Exchange Organisation aus und speichert sie zur weiteren Analyse in einer CSV Datei. Vieleicht kann es ja jemand gebrauchen oder sogar in eine vernünftige Form bringen.

# Alle Postfach Ordner in Ihre Berechrigungen für
# alle Postfächer auslesen und in CSV-Datei schreiben
#
# written by Frank Zöchling
# www.frankysweb.de

#—————————————————–

# Hier CSV Datei und Pfad angeben:
$outfile = „d:\test\report.csv“

#—————————————————–
$entireforest = Set-ADServerSettings -ViewEntireForest $true
$mailboxes = get-mailboxdatabase | get-mailbox
„Postfach;Ordnerpfad;Benzuter;Rechte“ | set-content $outfile

foreach ($mailbox in $mailboxes)
{
$folders = Get-MailboxFolderStatistics $mailbox | ForEach-Object {$_.FolderPath}
foreach ($folder in $folders)
{
$alias = $mailbox.Alias
$folderpath = $alias + „:“ + $folder
$folderpath = $folderpath -replace „/“,“\“
$folderaccessrights = Get-MailboxFolderPermission $folderpath -ErrorAction silentlycontinue
foreach ($folderaccessright in $folderaccessrights)
{
$accessright = $folderaccessright.AccessRights
$accessuser = $folderaccessright.Identity
„$mailbox;$folderpath;$accessuser;$accessright“ | add-content $outfile
}
}
}

In Zeile 25 steht “-ErrorAction silentlycontinue”, der Parameter unterdrückt Fehler auf der Konsole, da nicht alle Berechtigungen ausgelesen werden können, das betrifft zum Beispiel die Dumpster Ordner (Version, Purge etc). Die Ordner werden aber trotzdem im CSV aufgeführt.

7 Gedanken zu „Exchange 2010: Berechtigungen auf einzelne Postfach Ordner für alle Postfächer auslesen“

  1. Hallo, ich habe auch ein Problem, irgendwie rennt das script bei mir nicht los in der exchange managemet shell. datei wird angelegt, aber mehr auch nicht. mache ich etwas falsch?

    oder muss das in der ISE ausgeführt werden?

    Antworten
  2. Hi Franky ;)

    super Script, vielen Dank dafür, spart mir imsenses probieren und googlen :)
    Gibt es das ähnlich auch Rückwärts?
    Also eine UserID angeben und Ordnergenau aufgelistet bekommen, wo der user Zugriff hat?
    Ich könnte ja eventuell die Exceldatei Sortieren danach aber wenns per Script ginge wäre das natürlich schöner :)

    Jedenfalls Danke nochmal.

    Antworten
  3. Hallo „Franky“

    danke für das zu Verfügung Stellen deiner Scripte.

    Hierzu eine Frage als PS Neuling, da ich nicht drauf komme.
    Was muss ich anpassen um ausschließlich die Berechtigungen auf genau einen bestimmten Ordner zu erhalten.

    THX
    Frank

    Antworten
  4. Hi Frank,

    ich würde gerne diesen Skript nutzen. Jedoch bekomme ich folgenden fehler in der Endlosschleife:

    Add-Content : Das Gerät ist nicht bereit.
    Bei C:\tmp\BerechtigungsAbfrage.ps1:30 Zeichen:68
    + „$mailbox;$folderpath;$accessuser;$accessright“ | add-content <<<< $outfile
    + CategoryInfo : WriteError: (D:\test\report.csv:String) [Add-Content], IOException
    + FullyQualifiedErrorId : GetContentWriterIOError,Microsoft.PowerShell.Commands.AddContentCommand

    Gruß Daniele

    Antworten
    • Hallo,
      bitte prüfen Sie die Einstellung für die Variable $outfile, dort sollte ein gültiges Verzeichnis mit Angabe einer Datei stehen. Beispiel: $outfile = „d:\test\report.csv“

      Antworten

Schreibe einen Kommentar