1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Powershell】ActiveDirectoryの全セキュリティグループとその所属ユーザ一覧作成方法

Posted at

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での出力も叶わないのでなおさらですね。

?「あれ?出力結果は?例とかでもいいから見せてよ」

はぁ?会社の環境でやれ!情報を抽出するだけのコマンドなんだから読み取り権限のみのアカウントでやりゃいいだろ!
ただ膨大なユーザ数が抽出されるから、負荷にはきをつけてな。

以上です、よろしく。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?