web-dev-qa-db-ja.com

一連のユーザーが属するセキュリティグループのリストを生成するにはどうすればよいですか?

約50人のユーザーのリストが属するセキュリティグループ(特に配布グループではない)のリストを生成するように求められました。

新しい行に各ユーザー名を含むユーザーのリストusers.txtがあります。ユーザー名と、ユーザーがメンバーになっているセキュリティグループのリストをコンマで区切って含むmembership.txtを生成したいと思います。

これまでに作成したPowershellスクリプトは次のとおりです。

$users = Get-Content C:\users.txt

ForEach ($User in $users) {
  $getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof
  $User + ',' + $getmembership | Out-File -Append c:\membership.txt
}

これはほぼ機能しますが、2つの問題があります。

  1. セキュリティグループだけでなく、すべてのグループのリストを生成しています。セキュリティグループのみを含め、配布グループは含めないようにするにはどうすればよいですか?
  2. グループはOU=Security Groups,OU=City,DC=domain,DC=com CN=Senior Leadersという形式で追加されていますが、実際に必要な情報はSenior Leadersだけです。どうすれば余分な情報をすべて削除できますか?
6
NaOH

Get-ADUser行を拡張します。

$getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof | Get-ADGroup -Properties name | Where { $_.GroupCategory -eq 'Security' } | Select -ExpandProperty Name

これにより、グループのDNがGet-ADGroupにフィードされて追加のプロパティが取得され、グループカテゴリでフィルタリングされ、(DistinguishedNameではなく)グループの名前が選択されます。

7
Oliver Rahner