2016-11-11 1 views
0

J'utilise le script PowerShell pour obtenir une liste de tous les utilisateurs ayant un accès complet à la boîte aux lettres et je dois le limiter par une seule unité d'objet. Cependant, ma propre modification n'a pas apporté les résultats corrects et script est toujours en cours d'exécution sur tous les utilisateurs:Limite d'exécution du pipeline par unité d'objet

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission | 
where {$_.OrganizationalUnit -eq “Contoso.com/Users/test/" -and $_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | 
Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | 
Export-Csv -NoTypeInformation \\sharename\mailboxpermissions.csv 
+0

Que signifie «unité d'objet»? – 4c74356b41

+0

Juste une unité d'objet régulière dans Active Directory. Signifie unité d'objet spécifique pas toutes les boîtes aux lettres sur Exchange. –

Répondre

0

Il suffit d'ajouter un autre select où vous ne sélectionnez un objet:

Get-Mailbox -ResultSize Unlimited | 
    Get-MailboxPermission | 
    where {$_.OrganizationalUnit -eq “Contoso.com/Users/test/" -and $_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | 
    Select -first 1 | 
    Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | 
    Export-Csv -NoTypeInformation \\sharename\mailboxpermissions.csv 
+0

Salut Martin, merci pour votre réponse. Juste essayé votre code mais toujours voir que le script est en cours d'exécution sur toutes les boîtes aux lettres. –

+0

avez-vous vérifié le CSV? –

+0

csv est vide et le script après une longue période de temps avec une erreur et ce n'est pas surprenant que le processus PowerShell prend environ 5 Go de mémoire! –

0

Enfin, problème a été résolu en utilisant le filtre -organizationalUnit. Donc, le code devrait être le suivant:

Get-Mailbox -ResultSize Unlimited -organizationalUnit "ou=Users,ou=City,ou=county,dc=domain,dc=com" | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | Export-Csv -NoTypeInformation \\sharename\mailboxpermissions.csv