Powershellを使ってActive Directoryからメンバーリストを取得する

Powershellを使うとActive Directoryに問い合わせることで部署や配布リストのメンバー一覧をかんたんに取得できます。会社がMicrosoft色に染まっている方はぜひ活用してください。所属者一覧を手作業でメンテしている人がいてちょっと日本のITレベルに絶望したので「もっと広まれ!」って思って記事にします。

Active Directoryサーバにログインできればすぐにコマンド使えるんですが、手作業でメンテナンスしているって方はそういう権限無い方がほとんどだと思います。普通のパソコンでも管理ツールをインストールすることで問い合わせできるんですよ!まずはこちらを参考にActive Directoryコマンドを使えるようにしてください。

Get-Aduserコマンドを使えばそのユーザーの情報が取得できます。パソコンがactive directoryにjoinしているならご自身のユーザーもactive directoryユーザーかと思います。

これで返ってくる DistinguishedName のなかにCanonical Name (CN)とtopまでのOrganization Unit(OU)が記載されています。このOUデータを-SearchBaseオプションに指定するとGet-AdUserの検索の範囲指定ができます。逆にUserは指定してないので、-filterオプションで*(全員)を指定する必要があります。

所属部署を「自分の所属部署」にする場合、自分のユーザー検索してDistinguishedNameのOUから始まる部署検索すれば良いんです。

さらにもう一個上の部署を指定したい場合は、2個めのOUを指定するだけです。

この組織の所属一覧を取得するには、下記コマンドでできます。

-Properties *オプションは、設定されている値を全部取得しているだけで、標準で出力されるデータで足りるのであれば必要ありません。あとはこれをデータとして出力すれば終わりです。

Select-Objectは取得できたプロパティのうち、必要そうなのを選択しただけなので自由に変えてください。$UnitMemberList[0]とかで表示させれば必要なプロパティが判断できると思います。

管理人おすすめのImportExcelモジュールを使うとcsvじゃなくてExcelに直接吐き出せます。

Expoer-Excelに関しては下記を御覧ください。

全部つなげたものはこちら

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください