1

J'utilise le code suivant pour obtenir tous les membres d'un groupe.membres de la recherche dans le groupe de distribution d'échange

Get-DistributionGroupMember -Identity "Marketing USA" 

Le problème est que certains groupes ont plus de 1000 membres. Ainsi, au lieu de charger tous les enregistrements, y a-t-il une meilleure façon de filtrer le résultat pour ne voir que les membres dont j'ai besoin. Je souhaite faire une recherche par Primary Email et Display Name.

versions My Exchange sont 2010 et 2013.

Répondre

0

Pour les deux Exchange 2010 et 2013 vous pouvez effectuer une recherche par adresse e-mail en créant une liste d'adresses e-mail dans regex forme séparée par |. Ensuite, utilisez -imatch pour faire correspondre les adresses e-mail dont vous avez besoin. Remarque: Cela recherche à la fois l'adresse primaire et secondaire.

$EmailAddress = [regex]"[email protected]|[email protected]|[email protected]" 
Get-DistributionGroupMember -Identity "Marketing USA" | Where { $_.EmailAddresses.SmtpAddress -imatch $EmailAddress } 

ensuite à la recherche par nom d'affichage, vous pouvez utiliser tous si regex de la même manière à séparer les noms par |.

$DisplayName = [regex]"FirstName1 LastName1|FirstName2 LastName2|FirstName3 LastName3" 
Get-DistributionGroupMember -Identity "Marketing USA" | Where { $_.DisplayName -imatch $DisplayName } 

Avec cette méthode de filtrage, vous pouvez également effectuer des recherches partielles. Si vous ne mettez que le prénom de l'utilisateur, vous récupérerez tous les utilisateurs portant ce nom. Il en va de même pour la recherche d'adresse e-mail.

+0

déjà essayer et semble comme la performance est médiocre. Est-il vrai que l'enregistrement sera d'abord téléchargé dans la mémoire après qu'il sera filtré? – Chuki2

+0

'Get-DistributionGroupMember' sort les membres un par un dans l'applet de commande' Where' qui va filtrer les résultats, donc pas plus d'un enregistrement n'est trié en mémoire. Je pense que vous aurez du mal à trouver un moyen plus rapide. – Richard

0

Selon la documentation par défaut, la taille du résultat est limitée à 1000. Vous devrez inclure -ResultSize Unlimited par exemple Get-DistributionGroupMember -Identity "Marketing USA" -ResultSize Unlimited pour retourner plus que cela.

+0

Je ne veux pas charger tous les enregistrements, je veux rechercher des membres seulement. – Chuki2

+0

Si la personne que vous voulez faire correspondre est la personne 1001 dans le groupe de distribution et que vous ne regardez que les 1000 premières personnes de ce groupe, vous ne verrez jamais la personne que vous recherchez. Je ne veux pas voler ce que @Richard a écrit mais vous devrez combiner '-ResultSize Unlimited' avec ce qu'il a répondu pour rechercher tous les membres de votre liste de distribution s'il y a plus de 1000 membres dans cette liste. – JBaldridge

0

Un groupe de distribution est également un groupe AD. Avec la cmdlet Get-ADGroup, vous avez également la possibilité de filtrer la recherche de manière beaucoup plus efficace.

Par exemple:

Get-ADGROUP -Filter {proxyaddresses -comme "SMTP: [email protected]"} (ou utilisez l'attribut mail si c'est égale à l'adresse e-mail principale dans votre org)

ou

Get-ADGROUP -Filter {displayname -eq "MYDL"} -properties *

pour utiliser cette applet de commande, vous devrez peut-être charger le module ps ActiveDirectory avec « module import actived 'premier dans votre session PowerShell.