@Ansgarの回答はうまくいくと思いますが、ノイズが大きくなりすぎて最適化できないと思います。グループの数としては、通常(小さなハックと空のグループを収集避けるために)最初に報告すべきグループのdistinguishedNamesを収集するために賢くかもしれユーザーの数よりも低くする必要があります。
$groupsInOu = Get-ADGroup -SearchBase 'OU=DGG,DC=domain,DC=com' -LDAPFilter '(member=*)' |
ForEach-Object { $_.DistinguishedName }
Get-ADUser -Filter 'Division -like "PNCC"' -Properties * |
Select-Object Name, @{name=”MemberOf”;expression={($_.memberof | Where-Object { $groupsInOu -contains $_ }) -join ';' } } |
Export-Csv test.txt -NoTypeInformation
それとも、フィルタリングする場合名前(またはその他のプロパティ)で、私はあなたが値として気にプロパティ(またはプロパティ)でキーとADのオブジェクトとして識別名とハッシュテーブルを作成します。
$groupsHash = @{}
Get-ADGroup -LDAPFilter '(member=*)' |
ForEach-Object {
$groupsHash.Add($_.DistinguishedName, $_)
}
Get-ADUser -Filter 'Division -like "PNCC"' -Properties * |
Select-Object Name, @{name=”MemberOf”;expression={($_.memberof | Where-Object { $groupsHash[$_].Name -match 'someRegex' }) -join ';' } } |
Export-Csv test.txt -NoTypeInformation
をまた、私はプロパティについて、より具体的になります私は(-Properties memberof
)あなたがレポートで他のいくつかのプロパティを使用する予定がない限り、取得したいと思います。
本当にありがとうございます。正確に私が必要としたもの。 – BDUB
同様の問題を抱える他の人が、あなたのために働くアンカーをマークするのに役立ちます... – BartekB