Report-PFPermissions.ps1
Diese kleine überschaubare PowerShell-Skript funktioniert sehr ähnlich zum Commandlet "Get-PublicFolderClientpermissions" aber die Ausgabe ist "CSV-freundlicher und eignet sich daher besser für die Ausgabe in Reports-Dateien zur Auswertung. Das Problem von Get-PublicFolderClientPermission ist nämlich, dass es die Berechtigungen als Property "AccessRights" und "User" nicht als einfache Strings ausgibt, sondern das wiederum Objekte sind.
Bordmittel
Ein Befehl wie der Folgende ergibt damit keine schönen Ausgaben:
get-publicfolder -recurse | get-pu blicfolderclientpermissions | export-csv -path .\pfreport.csv
Auch wenn es im PowerShell Fenster eigentlich noch ganz gut aussieht
In der CSV-Datei ist das Ergebnis dann schon eher ernüchternd:
Vielleicht gibt es ja noch einen einfacheren Weg, aber ich habe mir nicht anders zu helfen gewusst, als das folgende PowerShell-Script zu schreiben und die Ausgabe da durch zu leiten
Eigene PowerShell Routine
Speichern Sie die folgende Datei einfach als PS1-Datei an einem geeigneten Pfad ab.
# PowerShell-Script to extract the Public Folder permissions of a given public folder # the default output of "get-publicfolderclientpermissions" is not so usable für CSV-Reports. Begin { } Process { $pf = $_ $folder = $pf.parentpath + "\" + $pf.name write-host "Processing Folder:" $folder $permission = get-PublicFolderClientPermission -identity $pf.Identity foreach ($perm in $permission) { $rights = [string]$perm.accessRights $User = [string]$perm.User # write-host "Rechte" $rights "User:" $User $pso = New-Object PSObject Add-Member -InputObject $pso noteproperty folder $folder Add-Member -InputObject $pso noteproperty User $User Add-Member -InputObject $pso noteproperty rights $rights $pso } } End { }
Alternativ hier auch als Download
report-pfpermissions.1.0.ps1.txt
Der Aufruf ist dann wie bei dem ersten Beispiel, nur dass nun dieses Skript in die Pipeline eingebunden wird
get-publicfolder -recurse | report-pfpermissions | export-csv -path .\pfreport.csv
In einer Exchange Console sehen sie erst den Aufruf ohne den Export und dann mit dem Export
Der unterschied in der Anzeige ist ist nur gering aber in der CSV-Datei sieht man nun die Rechte "Lesbar".
Nebenbei habe ich auch noch den Ordnerpfad und den Ordnernamen "zusammengesetzt".
Weitere Links
- PowerShell4Admin
- PowerShell Beispiele
- E2K7:PFManagement
- Get-PublicFolderClientPermission
http://technet.microsoft.com/en-us/library/bb124365.aspx - Get-PublicFolder
http://technet.microsoft.com/en-us/library/aa997615.aspx