【Powershell】Get-ADGroupMemberコマンドレットでADグループのメンバーを抜き出してみる

Active Directory Powershell


ファイルサーバの権限設定はActive Directory のグループで運用することが多いです。
ただ、フォルダーごとにグループを設定し、グループメンバーのユーザの管理を行うとなるとかなり大変ですね。

今回、Get-ADGroupMemberコマンドレットで以下のことを目指してみたいと思います。
・グループとそのメンバーの抜き出し
・メンバーをCSVファイルへ出力する



1.Get-ADGroupMember コマンドの機能

Get-ADGroupMember コマンドレットは、Active Directory グループのメンバーを抽出します。

オプションで -Recursive を付けることにより、検索するグループに含まれるすべてのメンバーを抜き出しできます。

コマンドおよびオプション

Get-ADGroupMember
[-AuthType <ADAuthType>]
[-Credential <PSCredential>]
[-Identity] <ADGroup>
[-Partition <String>]
[-Recursive]
[-Server <String>]
[<CommonParameters>]

2.コマンドを使ってグループメンバー抽出

基本的にはActive Directory の機能を保持したサーバでコマンドを実行します。
ドメインのメンバーサーバでコマンドを実行しても、コマンド実行に必要なPowershellモジュールが入っていません。

そのためAD専用のコマンドが認識せず利用できません。

この解決方法は簡単です。サーバーマネージャで「Windows PowerShell用 Active Directoryモジュール」を導入しておきましょう。
Active Directoryモジュール

グループのメンバーをすべて抜き出す

Get-ADGroupMember -Identity <グループ名> -Recursive

特定グループを指定して所属しているすべてのアカウント情報を抽出します。
-Recursive オプションをつけることにより、すべてのメンバーを抜き出せます。

普通にコマンドを実行してみ見ずらいですし、あまり役には立ちません。
そこで、パイプを利用してデータを整形することをおススメします。

Get-ADGroupMember -Identity <グループ名> | Select-Object name

グループをCSV形式で抜き出す

Get-ADGroupMember -Identity <グループ名> | Export-CSV -Path <CSVファイルのフルパス>

コマンド実行後にパイプを利用して、Export-CSVコマンドへ引き渡します。
必要なオブジェクトのみ抽出する場合には、主に Select-Object を利用してパイプで繋げます。
こうすることで、必要なデータをCSVとして抽出して、Excelでデータを加工しやすくなります。

もう一つ手を加えてみる

ログの先頭行に”#TYPE Microsoft.ActiveDirectory.Management.ADPrincipal” と表示されています。
せっかくのデータもエクセルで開くと無意味な1行となってしまいますね。
そこで “-NoTypeInformation” オプション を追加してみましょう。

すっきりとしたデータとなりました。
NoTypeInformationオプション


3.まとめ

Get-ADGroupMember コマンドレットを使えば、簡単にActive Directory のグループメンバーを抜き出せます。

実行してみてのとおりコマンド自体にはあまり機能はありません。

今後、Powershell コマンドが主になってきますし、コマンドの使い方は簡単ですのでお手軽に情報を抜き出すには便利かと思います。

スポンサードサーチ