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.
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
'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