meowjayjay
Goto Top

Get Mailbox Exchange

Hallöchen zusammen,

ich benötige ein PS Script welche die OUs nach Berechtigungen scannt.

Ich möchte wissen welcher User welchen Zugriff (Vollzugriff zb) auf welches Postfach hat und das ist einer CSV ausgeben.


Habe diese Zeile hier, bin mir aber nicht sicher ob Sie das tut was ich von Ihr möchte.

$nbdomain = "Domain"  
Get-Mailbox | Get-mailboxPermission | Where-Object { ($_.accessRights -like "*fullaccess*") -and -not ($_.User -like "nt-autorität\selbst") -and -not ($_.User -like "$nbdomain\Domänen-Admins")-and -not ($_.User -like "$nbdomain\Organisations-Admins") -and -not ($_.User -like "$nbdomain\Organization Management") -and -not ($_.User -like "$nbdomain\Administrator") -and -not ($_.User -like "$nbdomain\Exchange Servers") -and -not ($_.User -like "$nbdomain\Exchange Trusted Subsystem") -and -not ($_.User -like "nt-autorität\system")} | ft -AutoSize  

Kann mir jemand helfen?


Merci & Grüße
Kommentar vom Moderator tomolpi am 27.05.2021 um 11:11:44 Uhr
Frage formatiert - Code-Tags hinzugefügt

Content-ID: 667109

Url: https://administrator.de/contentid/667109

Ausgedruckt am: 22.11.2024 um 01:11 Uhr

Doskias
Lösung Doskias 27.05.2021 um 12:28:14 Uhr
Goto Top
Moin,

warum probierst du es nicht einfach mal aus? Du kannst wunderbar mit einem User anfangen und es dort überprüfen, dann erweitern, etc. Auf den ersten Blick würde ich sagen, dass es gut aussieht, was zumindest die Rechteabfrage angeht. Der Export zur CSV fehlt.

Ich hab vor ein paar Wochen eine ähnliche Abfrage geschrieben:

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn; 

$AD_User= get-aduser -filter * -Properties * |? DistinguishedName -like "*OU=[domain]*"|? msExchRecipientTypeDetails -like "1" |Select-Object samaccountname, UserPrincipalName  

foreach ($AD_Benutzer in $ad_user)
{
write-host $AD_Benutzer.UserPrincipalName >> c:\temp\Exchange-Rechte.txt
$rechte=Get-MailboxPermission ($AD_Benutzer.samaccountname) | ? user -NotLike "lo\ex*" | ? user -NotLike "[domain]\admin*" | ? user -NotLike "[domain]\orga*" | ? user -NotLike "[domain]\dom*"`  
| ? user -NotLike "[domain]\public*"|  ? user -NotLike "[domain]\delegated*" | ? user -NotLike "[domain]\manage*" |? user -NotLike "nt-aut*" |ft -AutoSize  
if($rechte.length -eq 0)
{write-host "kein weiterer Zugriff" >> c:\temp\Exchange-Rechte.txt }  
else
{
$rechte >> c:\temp\Exchange-Rechte.txt
}
write-host "" >> c:\temp\Exchange-Rechte.txt  
}

Als Ergebnis erhalte ich eine Text-Datei in der zu jedem Postfach steht, wer außer dem Besitzer noch Zugriff darauf hat, welchen zugriff und ob der Zugriff geerbt ist oder nicht.

Vielleicht hilft dir das weiter und dient als Anregung.

Gruß
Doskias
148121
148121 27.05.2021 aktualisiert um 13:56:25 Uhr
Goto Top
Habe diese Zeile hier, bin mir aber nicht sicher ob Sie das tut was ich von Ihr möchte.
YMMD face-big-smile. Dann sagt ihr doch gleich das was du von ihr möchtest, warum so schüchtern face-wink?!

Get-Mailbox -OrganizationalUnit 'OU=BlaBub,dc=domain,dc=tld' -PipelineVariable mailbox | Get-Mailboxpermission | ?{!$_.User.SecurityIdentifier.IsWellKnown([System.Security.Principal.WellKnownSidType]::SelfSid)} | select @{n='Mailbox';e={$mailbox.PrimarySmtpAddress}},User,@{n='AccessRights';e={$_.AccessRights -join ','}},IsInherited | export-csv .\mailboxes.csv -Delimiter ";" -NoType -Encoding UTF8  
Gruß w.
MeowJayJay
MeowJayJay 27.05.2021 um 13:06:39 Uhr
Goto Top
Vielen Dank erstmal - ich probiere es mal face-smile