Rolands Erinnermich

Infos, Links, Scripte und mehr rund um E-Mail

Exchange 2007: Berechtigungen auslesen per Powershell

Erstellt von Roland am Freitag 6. November 2009

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
}
  • Share/Bookmark

Verwandte Artikel

Kommentar schreiben

XHTML: Sie können diese Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Spam Protection by WP-SpamFree