PowerQueryを使って、Active Directory上の上司設定などを漏れなくチェックする方法
社内のユーザー管理でよくある課題のひとつに、Active Directoryの上司(manager属性)設定が正しく入っていない、または一部ユーザーだけ空欄になっているといったケースがあります。
承認フローや組織図の自動生成に利用するため、上司設定の抜け漏れは業務に影響します。
今回はPower Query(Excel標準機能)を使って、AD上のユーザー情報を一覧化し、上司設定を含む項目を漏れなくチェックする方法をまとめました。
1. 前提条件
- Active Directoryにアクセスできる環境(ドメイン参加PC + 適切な認証)
- Excel(またはPower BI Desktop)が利用可能でPower Queryが搭載されていること
- 取得したい属性(DisplayName, SamAccountName, Department, Title, Manager など)を把握しておくこと
2. ADデータの取得方法
大きく分けて以下の2つの方法があります。
- CSV経由:PowerShellでエクスポートしたCSVをPower Queryで読み込む
- Active Directoryコネクタ:Excel/Power BIのコネクタから直接ADを参照
2-1. CSV経由での取得
PowerShellから必要項目を抽出してCSVに出力し、それをPower Queryで読み込む方法です。
Get-ADUser -Filter * -Properties DisplayName,SamAccountName,Department,Title,Manager |
Select-Object DisplayName,SamAccountName,Department,Title,Manager |
Export-Csv C:\Temp\AD_Users.csv -NoTypeInformation -Encoding UTF8
その後、Excel → データ → データの取得 → テキスト/CSV から読み込みます。
2-2. Active Directoryコネクタで直接参照
管理者権限がありドメイン参加PCから操作できる場合は、Power Queryの「Active Directory」コネクタを使うと便利です。
- Excelを開き、[データ] → [データの取得] → [その他のソース] → [Active Directory] を選択。
- ドメイン名(例:
corp.local)を入力。 - 認証方法を「Windows認証」で指定。
- ADのスキーマが表示されるので、
Userテーブルを選択。 - 必要な属性(DisplayName, Department, Managerなど)を展開。
これによりCSVを介さず、常に最新のADデータを直接Power Queryに取り込むことができます。
ただし、大規模ADでは処理が重くなる場合があるため、必要な列や条件を絞って使うのがおすすめです。
3. 上司設定の有無をチェックする
次に「Manager」列の空欄や不正値を確認できるように加工します。
- Power Queryのメニュー「列の追加」→「条件列」を選択
- 条件:もし
Manager列が null または空白なら「未設定」、それ以外は「設定済」
if [Manager] = null or Text.Trim([Manager]) = "" then "未設定" else "設定済"
4. Manager名を見やすく整形する
Manager列は「CN=山田太郎,OU=Users,DC=example,DC=com」のような形式になることがあります。
Power Queryのテキスト関数で名前部分だけを抽出できます。
Text.BetweenDelimiters([Manager], "CN=", ",")
5. レポート出力と活用
- 加工が終わったら「閉じて読み込む」でExcelシートに展開。
- 「上司設定ステータス = 未設定」でフィルタすれば、漏れのあるアカウントを一目で把握可能。
- 部署ごとの件数をピボットテーブルで集計すれば、どの部署に設定漏れが多いか可視化できます。
6. 運用上のポイント
- CSV経由は「権限が限られているユーザー」に共有しやすい。
- 直接参照は「管理者がリアルタイムでチェックしたいとき」に便利。
- 大規模環境ではパフォーマンスを考慮して、対象OUやフィルタを指定して抽出するとよい。
まとめ
Power Queryを使えば、Active Directoryの上司設定(manager属性)の有無を簡単にチェックできます。
CSV経由は権限のないユーザーでも扱いやすく、Active Directoryコネクタはリアルタイム参照に向いています。
組織の運用に合わせて両者を使い分けることで、上司設定の抜け漏れを効率的に把握し、承認ルートや組織図の整合性を維持できます。
補足:Azure AD(Entra ID)の場合は、Graph API を利用して取得 → Power Query に接続する必要があります。


コメント