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 $outfileforeach ($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.
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?
Kommando zurück. Geduld ist der Schlüssel, jetzt wächst die Datei. Also alles richtig gemacht.
Schönes Wochenende
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.
und wie führe ich dieses Script aus?
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
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
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“