【PowerShell】ActiveDirectoryから情報をCSV出力する方法

こんにちは。営業職からインフラエンジニアに転職したますのです。PowerShellさんに最近お世話になっております。
ActiveDirectoryからメールアドレス、説明、名前、部署などなど、出力したい時に重宝しております。AD情報引っ張れるの万歳であります!

色々プロパティ情報を探した中で、私がよく使うコマンドを忘れないようにメモしていきますので参考になれば良いなと書きなぐります。

PowerShellを使ってADに接続する

わたしは普段「Windows PowerShell の Active Directory モジュール」を使って接続していますが、PowerShellがあれば不要なようでびっくりしております。

PowerShellを起動し、以下のコマンドを実行します。

Import-Module ActiveDirectory
接続できているか可能か確認する際は「Get-ADUser (アカウント名)」のようにすると情報が取得できます。

ADから出力したい項目名称を確認する

ADとPowerShellが接続できました!しかし、肝心の項目をどのように引き出すか分かりません。。。
そこで、ADの1人のユーザから全項目を一覧出力して、入力されてる項目から確認してしまおうとごり押しをしました。

Get-ADUser -Identity user-name -Properties *

※一部抜粋※
—————————————-
DistinguishedName : CN=***,OU=user,DC=test,DC=local
Enabled : True
GivenName : たろう
Name : ますの たろう
ObjectClass : user
ObjectGUID : ***-***-***-12345648
SamAccountName : taro-masno
SID : S-1-5-21-*******0
Surname : ますの
UserPrincipalName : taro-masno@gmail.com

こんな感じで内容が表示されるようになります。
ADの項目【市区町村】を出力したい場合は「City」、【私書箱】を出力したい場合は「POBox」ということが分かってきます。
調べてたら結構たくさん書いてあるページもあったのでペタリ
http://itdoc.hitachi.co.jp/manuals/3020/30203S9310/DMDS0038.HTM

ADから指定した項目の内容のみCSV出力する

さぁ!ここまで来たらあとは出力するだけであります!

Get-ADUser -Filter * -SearchBase “OU=user,DC=test,DC=local” -Properties City,POBox | select sAMAccountName,City,POBox | convertto-csv -Delimiter “,” -NoTypeInformation > 出力先(c:\temp\adlist.csv 等)

————————————
結果の抜粋:
“taro-masno”,”市区町村”,”私書箱”

ますの
コマンドの動きはこんな感じだよ!
ADのOU「user」に所属するユーザの「基本情報(10項目)」&「市区町村」&「私書箱」の情報を出力!
→selectで項目「sAMAccountName」「City」「POBox」のみを出力!
→convertto-csvでCSV出力形式に整形!指定のファイルに出力!

※参考※Get-ADUserのオプションについて

Get-ADUser:AD情報の取得コマンドで使ったオプションについて簡単にメモします!

-Filter 出力条件の設定(*で全て)→-SearchBaseを使う場合必須の項目
-SearchBase ユーザーを表示するための条件としてOU(組織単位)またはドメインを指定する。
-Properties 表示するユーザーの特定の属性情報を表示する。
以上です。
ActiveDirectoryの情報って何だかんだ使いたいことも多いので、全ユーザの特定の項目だけ出力したい!という時にはぜひ使ってみてください。
幸せになれることをお祈りいたしまする。
最新情報をチェックしよう!