Boîte aux lettres d'audit Exchange 2007 toutes les autorisations d'accès avec Powershell
-
22-09-2019 - |
Question
Je l'occasion, je me demande de produire une liste d'utilisateurs qui ont les droits d'accès à un échange particulier boîte aux lettres 2007. En ce moment je fais manuellement, et je voudrais idéalement faire avec Powershell.
Y at-il de toute façon à produire une liste complète des droits d'accès (et envoyer sur les droits de nom serait également utile).
Merci, Jonny
La solution
Envoyer-Comme les autorisations sont stockés dans le répertoire actif, il est donc un peu difficile de les atteindre. Vous pouvez utiliser Add-Member si vous souhaitez combiner les propriétés que vous aimez des deux résultats.
Accès complet:
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
Envoyer-As:
get-mailbox | %{$mailbox = $_; Get-ADPermission $mailbox.DistinguishedName | ?{$_.ExtendedRights -like "Send-As" -and $_.User -notlike "NT AUTHORITY\SELF"}} | ft {$mailbox},user,{"Send-As"}
Autres conseils
En plus de Slipsecs réponse il y a une alternative à des autorisations Envoyer-As audit.
$(Get-Mailbox -Identity mailboxName).GrantSendOnBehalfTo | ft Name
retourne les utilisateurs et pas ceux générés automatiquement ajoutés manuellement.
Merci encore Slipsec avec votre aide sur ce!
get-mailbox -identity MailBoxName | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
Si vous cherchez des autorisations pour les utilisateurs sur une boîte aux lettres spécifique. Remplacez le MailBoxName avec le nom exact de la boîte aux lettres que vous essayez d'exécuter le rapport sur. Il est KeySensitive en ce qui concerne le nom de la boîte aux lettres et alias.
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
dans la commande ci-dessus, dois-je remplacer foo avec la boîte aux lettres ou le nom d'utilisateur? J'ai essayé la commande et il ne dit pas peut se lier comme objet est nul -. Sera reconnaissant pour votre aide
Je sais que c'est vieux, mais juste au cas où quelqu'un d'autre vient sur ce fil à la recherche d'aide pour répondre aux OPs dernière question, $foo
représente une variable que vous devez définir avant d'exécuter la commande, afin de n exemple:
$foo = 'Example User'
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights