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 May 27, 2021 um 09:11:44 Uhr
Frage formatiert - Code-Tags hinzugefügt

Content-Key: 667109

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

Printed on: April 24, 2024 at 19:04 o'clock

Member: Doskias
Solution Doskias May 27, 2021 at 10:28:14 (UTC)
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
Mitglied: 148121
148121 May 27, 2021 updated at 11:56:25 (UTC)
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.
Member: MeowJayJay
MeowJayJay May 27, 2021 at 11:06:39 (UTC)
Goto Top
Vielen Dank erstmal - ich probiere es mal face-smile