Zenn Dev 8chikuwa3 Articles 65f609d528fa0e
Active Directory:OU階層とGPO適用状況をツリー状テキストに出力
- URL: https://zenn.dev/8chikuwa3/articles/65f609d528fa0e
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Active DirectoryのOU階層とGPO適用状況を、リンク順序・強制・無効の状態も含めてツリー状のテキストファイルに一括出力するPowerShellスクリプトを紹介している。標準コマンドレットでは取得できないドメインルートのGPOも網羅し、gPLink属性を直接パースすることでリンク順序(Order)を抽出している。長年の運用で蓄積したゾンビGPOや継承ブロックの把握・引き継ぎ資料の作成に役立てることができる。
詳細
- 課題背景: GUIや標準コマンドレットでは「どのOUにどのGPOが何番目の優先順位でリンクされているか」の全体像が把握しにくく、引き継ぎや環境棚卸しで困る
- スクリプトの主な処理フロー:
- Get-ADDomain でドメインルートを明示的に取得(標準の Get-ADOrganizationalUnit では漏れる)
- DistinguishedName を解析して階層ツリーを構築し、gPOptions で継承ブロック有無を判定
- gPLink 属性(LDAP文字列)をカスタム関数 Get-Gplink で直接パースしてリンク順序(Order)を抽出
- 各OUにリンクされたGPOの表示名・強制(Enforced)・有効/無効(Enabled)・Order を含むツリーをテキストファイルに出力
- 出力例: OU名の横に「[Block Inheritance:継承ブロック]」、GPOに「[Order:1]」「[Enforced:強制]」「[Disabled:無効]」を付与
- 実行要件: RSATの Active Directory モジュールとグループポリシー管理ツール(GPMC)が必要。ADの読み取り権限があれば動作