2010-01-04 4 views
1

Je suis parfois invité à produire une liste d'utilisateurs disposant des droits d'accès total à une boîte aux lettres Exchange 2007 donnée. En ce moment je le fais manuellement, et j'aimerais idéalement le faire avec Powershell. Y a-t-il une façon de produire une liste des permissions d'accès complet (et des droits d'envoi au nom serait également utile).Audit des autorisations d'accès complet à la boîte aux lettres Exchange 2007 avec Powershell

Merci, Jonny

Répondre

1

Send-As 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 qui vous intéressent à partir des deux résultats.

Accès complet:

get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights 

Send-As:

get-mailbox | %{$mailbox = $_; Get-ADPermission $mailbox.DistinguishedName | ?{$_.ExtendedRights -like "Send-As" -and $_.User -notlike "NT AUTHORITY\SELF"}} | ft {$mailbox},user,{"Send-As"} 
+0

Salut Slipsec! L'accès complet a travaillé comme un charme! Merci! J'ai également répondu ci-dessous avec une alternative à Send-As un que j'ai travaillé en essayant cela hier. – Jonny

2

En plus de répondre Slipsecs il y a une alternative à l'envoi-Vérification des autorisations.

$(Get-Mailbox -Identity mailboxName).GrantSendOnBehalfTo | ft Name 

Ceci renvoie uniquement les utilisateurs ajoutés manuellement et ceux qui ne sont pas générés automatiquement.

Merci encore Slipsec avec votre aide à ce sujet!

+1

Je ne pense pas que ce soit une "alternative" mais plutôt quelque chose d'autre (même si beaucoup d'admins ont tendance à mettre en place les deux parce qu'ils ne comprennent pas la différence). AFAIK, «GrantSentOnBehalfTo» correspond au droit «Envoyer au nom de» (un «délégué» a.k.a.) plutôt qu'à l'autorisation «Envoyer en tant que»? La principale différence de comportement entre les deux est que, avec «Envoyer au nom», le destinataire verra toujours l'adresse de l'expéditeur réel en plus de l'adresse que vous envoyez pour le compte de. Avec "Envoyer comme" il n'y a aucune trace d'un tiers ayant été impliqué dans l'envoi du message. –

0

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 dit ne peut pas lier comme objet est nul - sera reconnaissant pour votre aide.

+0

Non, $ foo n'a pas besoin d'être changé. $ foo est défini sur chaque objet de boîte aux lettres parce que Get-Mailbox est en cours d'acheminement. Chaque boîte aux lettres est donc conservée dans $ _, qui est alors affectée à $ foo et accessible en dehors de la tuyauterie initiale. – Jonny

0

Je sais que c'est ancien, mais au cas où quelqu'un d'autre rencontrerait ce sujet à la recherche d'aide, pour répondre à la dernière question OPs, $foo représente une variable que vous devez définir avant d'exécuter la commande, comme par exemple:

$foo = 'Example User' 

get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights 
+1

oups, n'a pas complètement lu la commande, $ foo est déjà défini par get-mailbox – private

1
get-mailbox -identity MailBoxName | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights 

Si vous êtes à la recherche d'autorisations pour les utilisateurs sur une boîte aux lettres spécifique. Remplacez MailBoxName par le nom exact de la boîte aux lettres sur laquelle vous tentez d'exécuter le rapport. Il est KeySensitive en ce qui concerne le nom de la boîte aux lettres et l'alias.

Questions connexes