Active Directory に登録されているグループをすべて抽出し、そこからユーザ一覧をしようと思ったら以下のコマンドになると思います。
Get-ADGroup -Filter * | Get-ADGroupMember
これならたしかにすべてのグループに所属するユーザが抽出できますね。
ただこれには一つ問題があります。
上記コマンドで出力される結果は単なるユーザ情報でしかなく、どのグループからパイプ処理で渡され出力されたユーザかなんて情報は持ってません。
こういったコマンドを打つ場合っていうのは大抵棚卸しが目的なので、それを要求している場合がほとんどです。
以下、それを実現するためのコマンドです。
foreach ($GroupList in Get-ADGroup -Filter *) {Get-ADGroupMember $GroupList | -join ($GroupList.Name,",",$_.Name,",",$_.SamAccountName)}
このコマンドであればこのユーザはこのグループに所属しているんだなというのが一目瞭然です。
また、上記コマンドでは各項目間の区別を容易にするため、カンマで区別するいわゆるカンマセパレートをしています。
例えば、グループ名などにカンマを使っちゃってるクソめんどくせぇ運用している場合はチルダとか比較的利用頻度の低い文字列をセパレートに利用すると区別しやすいですね。
Powershellでは、データのファイル出力にexport-csv以外を使った場合、項目間の区別にスペースを使うことがあり、しかも見栄えをよくするためにスペースの数がランダムだったりして集計殺しだったります。
今回のようなことが目的の場合はexport-csvでの出力も叶わないのでなおさらですね。
?「あれ?出力結果は?例とかでもいいから見せてよ」
はぁ?会社の環境でやれ!情報を抽出するだけのコマンドなんだから読み取り権限のみのアカウントでやりゃいいだろ!
ただ膨大なユーザ数が抽出されるから、負荷にはきをつけてな。
以上です、よろしく。