Aus meiner heutigen Powershell-Session mit meinem Kollegen Carsten ist ein Script als Funktion get-permissions entstanden, mit dem man die Postfächer ausgeben kann, auf die ein einzugebender User die Berechtigung “Vollzugriff” (fullaccess) bzw. “Senden Als” (SendAs) hat. Es werden beide Rechte für alle Postfächer in der Organisation geprüft. Bei größeren Umgebungen kann ein Durchlauf etwas dauern.
Das Script fordert nach dem Aufruf zur Eingabe des Logon-Namens des Users auf, für den die Berechtigungen geprüft werden sollen. Die Ausgabe des Ergebnisses erfolgt sowohl in die Shell, als auch in die Datei c:\logonname.txt (Punkte im Logonnamen werden durch Bindestriche ersetzt). Bei Fragen zum Script könnt Ihr Euch gerne an mich wenden.
Hier das Script:
function get-permissions { $AllUsers = @() $mailboxes = @() $name=read-host "Please enter the Logonname" $AllUsers += Get-Mailbox -Resultsize Unlimited foreach ($user in $AllUsers) { $perm = Get-Mailboxpermission -Identity $user foreach ($permission in $perm) { if ($permission.user.tostring() -like "*$name*") { $obj = new-object psObject $obj |Add-Member -MemberType noteproperty -Name "Mailbox" -Value $user.Displayname if ($permission.Accessrights[0] -like "*fullaccess*") { $obj |Add-Member -MemberType noteproperty -Name "Vollzugriff" -Value "True" } Else { $obj |Add-Member -MemberType noteproperty -Name "Vollzugriff" -Value "False" } if ($permission.Accessrights[0] -like "*SendAs") { $obj |Add-Member -MemberType noteproperty -Name "Senden Als" -Value "True" } Else { $obj |Add-Member -MemberType noteproperty -Name "Senden Als" -Value "False" } $mailboxes += $obj } } } $mailboxes $filename = $name.Replace(".","-") $mailboxes | export-csv c:\$filename.txt -NoTypeInformation -encoding default }




Hallo Rainer,
habe das Script eben nochmals bei mir getestet (Exchange 2007 aktueller Patchstand) und es lief ohne Probleme. Bitte wie folgt vorgehen: Das Script in eine Textdatei kopieren und als Datei mit der Endung .ps1 abspeichern. Dann in der Exchange Verwaltungsshell die Datei einmalig mit . ./dateiname.ps1 (Punkt Leer Punkt) aufrufen. Anschließend steht Dir die Funktion get-permissions zur Verfügung. Wichtig: Das Script funktioniert natürlich nur in der Exchange Verwaltungsshell und nicht in der “normalen” Powershell, da die Exchange-Erweiterungen benötigt werden.
Gruß,
Roland
Hallo,
hab das Script ausprobiert.
Blos tut sich bei mir damit gar nichts (d.h. keine Fehlermeldung bzw. kein Ergebniss oder dergleichen).
Gruß