1

グループ内のすべてのメンバーを取得するには、次のコードを使用しています。Group Distribution Exchangeのメンバーを検索

Get-DistributionGroupMember -Identity "Marketing USA" 

問題は、一部のグループには1000を超えるメンバーがいることです。そのため、すべてのレコードを読み込む代わりに、必要なメンバーだけを見るために結果をフィルタリングすることができます。

Primary EmailDisplay Nameで検索したいと思います。

私のExchangeのバージョンは20102013です。

答えて

0

Exchange 20102013の両方の場合、regexの形式でメールアドレスのリストを|で区切って検索すると、メールアドレスで検索できます。次に、-imatchを使用して、必要なメールアドレスと一致させます。 :これは、プライマリとセカンダリの両方のアドレスを検索します。

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

次に表示名で検索するには、あなたはすべてのように|で名前を分離するのと同じ方法でregexを使用することができます。

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

このフィルタリング方法では、部分検索を行うこともできます。ユーザーのファーストネームだけを入力すると、その名前のすべてのユーザーが返されます。同じことが電子メールアドレスの検索になります。

+0

既に試してみて、パフォーマンスが悪いようです。レコードがフィルタリングされた後、最初にメモリにアップロードされるのは本当ですか? – Chuki2

+0

'Get-DistributionGroupMember'は、結果をフィルタリングする' Where'コマンドレットにメンバーを1つずつ出力します.1つ以上のレコードがメモリ内でソートされません。私はあなたがより速い方法を見つけるのに苦労すると思います。 – Richard

0

デフォルトでは、結果のサイズは1000に制限されています。-ResultSize Unlimitedなどを含める必要があります。 Get-DistributionGroupMember -Identity "Marketing USA" -ResultSize Unlimitedそれ以上のものを返す。

+0

私はすべてのレコードをロードしたくない、私はメンバーだけを検索したい。 – Chuki2

+0

一致する人物が配布グループの人物1001であり、そのグループの最初の1000人しか見ていない場合、あなたは探している人を見かけません。 @リチャードが書いたことを盗もうと思っていませんが、そのリストに1000人以上のメンバーがいる場合は、回答リストにあるすべてのメンバーを検索するために答えたものと-ResultSize Unlimitedを組み込む必要があります。 – JBaldridge

0

配布グループもADグループです。 Get-ADGroupコマンドレットを使用すると、検索をより効果的にフィルタリングすることもできます。例えば

のGet-ADGROUP -Filter {のproxyAddresses様 "SMTP:[email protected]"}(またはそれがあなたの組織での一次電子メールアドレスと等しい場合、メール属性を使用)

または

のGet-ADGROUP -Filter {DisplayNameに-eq "MyDL"} -Properties *

あなたはactived「インポート・モジュールとのActiveDirectoryのPSモジュールをロードする必要がある場合があります。このコマンドレットを使用するにはあなたのPowerShellセッションでは最初に「ディレクトリ」になります。

関連する問題