Windows Server 2022 with PS 第6章

第6章: グループポリシーの設定と管理


1. この章で解説する主要な技術・概念(箇条書き)

  1. グループポリシー(GPO)の基本構造と役割
    • LSDOUの適用順序(Local, Site, Domain, OU)
    • Group Policy Management Console(GPMC)の概要
  2. PowerShellを使用したGPOの作成と管理
    • New-GPO, New-GPLink, Set-GPRegistryValue, Import-GPO, Export-GPO など
  3. ポリシーの適用と優先順位のコントロール
    • GPOのリンク、継承のブロック、Enforced(強制)設定
  4. WMIフィルタリングやセキュリティフィルタリング
    • より細かい適用対象の制御
  5. ポリシーの適用状況確認とトラブルシューティング
    • gpresult /r, Get-GPResultantSetOfPolicy, イベントログ分析
  6. 高度なグループポリシー運用とベストプラクティス
    • GPOのバックアップ・復元、複数ドメイン環境での管理、分散管理の注意点

2. グループポリシー(GPO)の基本構造と役割

2-1. グループポリシーとは

  • グループポリシーは、Active Directoryドメインにおいてユーザーやコンピュータの設定を一元的に管理するための仕組み。
    • 例: パスワードポリシー、デスクトップ壁紙の強制変更、ソフトウェア配布、レジストリ設定など。
  • GPO(Group Policy Object) は具体的なポリシー設定を格納する単位で、ドメイン内の特定サイト・ドメイン・OUに「リンク」することで、その配下のユーザーやコンピュータに適用される。

2-2. LSDOUの適用順序

  1. Local: ローカルポリシー(1台ごとの設定)
  2. Site: Active Directoryのサイト単位でリンクされたGPO
  3. Domain: ドメイン全体にリンクされたGPO
  4. OU (Organizational Unit): 組織単位にリンクされたGPO
  • 最下位(OUレベル)のポリシーが最も優先されるが、“Enforced”“Block Inheritance” の設定で例外が生じる。

2-3. Group Policy Management Console(GPMC)とPowerShell管理の違い

  • GPMC(GUIツール): グラフィカルなウィザードでGPOを作成・編集しやすい。
  • PowerShell: スクリプトでGPOの作成やリンクを一括管理できる。
  • 大規模環境で大量のOUを扱う場合、PowerShellによる自動化が有効。

3. PowerShellを使用したGPOの作成と管理

3-1. New-GPO と New-GPLink の基本使用例

# 1. GPOを新規作成
New-GPO -Name "SecurityPolicy" -Comment "社内セキュリティ強化のためのGPO"

# 2. 作成したGPOをOU "OU=Servers,DC=example,DC=com" にリンク
New-GPLink -Name "SecurityPolicy" -Target "OU=Servers,DC=example,DC=com" -LinkEnabled Yes
  • これで、”SecurityPolicy” GPOが”Servers” OUのコンピュータやユーザーに対して適用される。
  • -LinkEnabled Yes は既定値だが、明示すると可読性が上がる。

3-2. ポリシー項目の設定:Set-GPRegistryValue や Set-GPPrefRegistryValue

  • Set-GPRegistryValue は、GPOの[Computer Configuration]や[User Configuration]配下のレジストリポリシーを設定する際に利用。
# 例: "SecurityPolicy" GPOに対して、ログオン時のバナーを設定
Set-GPRegistryValue -Name "SecurityPolicy" `
  -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System" `
  -ValueName "LegalNoticeText" -Type String -Value "Unauthorized access prohibited"
  • これでGPO上にレジストリエントリを作成し、適用先のコンピュータは次回ポリシー更新時にバナーが表示されるようになる。

3-3. GPO設定のバックアップと復元:Export-GPO / Import-GPO

# 指定GPOをエクスポート(バックアップ)フォルダへ
Export-GPO -Name "SecurityPolicy" -Path "C:\GPOBackup\SecurityPolicy"

# 別のドメインやテスト環境へインポート
Import-GPO -Name "SecurityPolicy" -Path "C:\GPOBackup\SecurityPolicy"
  • Export-GPO で取得したGPO構成は、GUID形式のフォルダ構造で保存される。
  • Import-GPO で同名GPOへ上書き、あるいは事前にNew-GPOで空GPOを作成してからインポートすることも可能。

4. ポリシーの適用と優先順位のコントロール

4-1. Block InheritanceとEnforced(以前のNo Override)

  • Block Inheritance: OUレベルで設定し、上位(ドメインやサイト)からのポリシー継承をブロックできる。
  • Enforced: GPOに対して設定し、ブロックに関係なく上位ポリシーを必ず適用させる。
  • 過度に使うとトラブルシューティングが複雑になるため、複雑な競合がない設計が望ましい。

4-2. GPOのリンク順序

  • 同じOUに複数GPOをリンクした場合、GUIの「リンクの順序」が下のものほど後に適用され、優先度が高い。
  • PowerShellのNew-GPLink-Order引数を指定し、GPMCのUIで設定する「リンクの順序」に相当する操作を行える。

5. WMIフィルタリングやセキュリティフィルタリング

5-1. WMIフィルタ(WMI Filtering)

  • WMIフィルタを利用すると、OSバージョンやハードウェア属性、IPサブネットなどに応じてGPO適用を細かく制御できる。
    • 例: Windows Server 2022だけに適用したい場合など。
  # 例: WMIフィルタで OS が 'Windows Server 2022' に一致するものを作成
  New-GPWmiFilter -Name "FilterWindows2022" -QuerySelect "Select * from Win32_OperatingSystem Where Caption Like '%Windows Server 2022%'"
  • 作成後、GPOのプロパティでWMIフィルタを選択すると、そのフィルタを満たすクライアント/サーバーのみに適用される。

5-2. セキュリティフィルタリング

  • セキュリティフィルタリングは、GPOに対して「Authenticated Users」ではなく、特定のグループやコンピュータに限定して適用する機能。
  • ADユーザーやグループを「このGPOを読み取り&適用する権限」に追加または削除する形で設定可能。
  • 大規模環境で柔軟にGPO適用を制御する際にWMIフィルタと組み合わせると非常に強力になるが、適用範囲が複雑化しやすいため、設計段階でルールを決めるのが望ましい。

6. ポリシーの適用状況確認とトラブルシューティング

6-1. gpresult /r や Get-GPResultantSetOfPolicy

# ローカルマシンの現在のユーザーとコンピュータに適用されたGPO一覧を表示
gpresult /r
  • コマンドプロンプト(またはPowerShell)で実行し、適用済みGPOやブロックされたGPO等をテキスト表示。
  • より詳細をHTMLレポートで得るには、gpresult /h C:\report.html が便利。
# PowerShellコマンドでRSoP (Resultant Set of Policy) を取得する例
Get-GPResultantSetOfPolicy -ReportType Html -Path "C:\RSoP.html"
  • 出力されたHTMLレポートをブラウザで確認し、GPOの競合や実際の適用値を一目で確認できる。

6-2. イベントログの確認

  • イベントビューア「Applications and Services Logs」 → 「Microsoft → Windows → GroupPolicy」または「GroupPolicy/Operational」を参照すると、GPO適用時の詳細ログが残っている。
  • 特にエラー(例: Event ID 1006, 1030)が記録されるときはネットワーク障害やDNS問題が多い。

6-3. 代表的トラブル例と対処

  1. 「ポリシーが適用されない」
    • サーバーが正しくドメイン参加されているか、DNS設定が問題ないか
    • GPOが無効(Disabled)になっていないか
    • セキュリティフィルタリングやWMIフィルタが原因で適用されていない可能性
  2. 「ポリシー更新をすぐに反映したい」
    • gpupdate /force を実行、または再起動して即時適用を試す。
    • コンピュータ設定とユーザー設定それぞれで再ログオン/再起動が必要な場合も。

7. 高度なグループポリシー運用とベストプラクティス

7-1. GPOのバージョン管理と分散管理

  • 大規模組織では、多数の管理者がGPOに変更を加えると、競合や誤設定が生じやすい。
  • Change management: GPOを編集する際はGPMCでバックアップやバージョンメモを残し、テスト用OUで検証してから本番に適用するフローが望ましい。
  • 分散管理: OU単位でGPO管理権限を委任し、誤って上位のポリシーを編集しないようにガード。

7-2. 複数ドメイン環境でのGPO展開

  • 複数ドメインを持つフォレストでは、GPOのリンク範囲がドメインをまたぐときに注意が必要。
  • Domain Local / Universalグループの使い分けなど、AD設計全体がGPO適用に影響。
  • フォレスト全体に統一のセキュリティポリシーを適用する場合、フォレストのドメイン全てとやり取りするため、適切なサイトリンクや複製のタイミングも考慮すべき。

7-3. ポリシー適用の段階的ロールアウト

  • ミスを避けるため、テストOUステージングOU本番OU という段階でGPOを移動・リンクしていくと安全。
  • PowerShellを使い、New-GPLink で対象OUを切り替えるだけでも段階的ロールアウトが実現可能。
  • 大幅な変更をする場合は、バックアップ (Export-GPO) でロールバック策を用意しておく。

8. 章末まとめと次章へのつながり

8-1. 学習のまとめ

  • グループポリシー(GPO)の基本構造(LSDOUの適用順序)と、リンクによるドメイン/OU単位の一括制御を学びました。
  • PowerShellを用いたGPO作成(New-GPO)、リンク(New-GPLink)、バックアップ(Export-GPO)等を理解し、大規模環境ではこれらをスクリプト化して効率良く管理できる利点を把握。
  • WMIフィルタセキュリティフィルタリングで、対象クライアントのOSバージョンやセキュリティグループに基づいて、きめ細かくポリシー適用可能な仕組みを確認。
  • ポリシーが競合した場合や適用されない場合のトラブルシューティングとして、gpresult /r, Get-GPResultantSetOfPolicy、イベントログを活用する方法を紹介。
  • ベストプラクティスでは、GPOの分散管理や複数ドメインフォレストでの運用、テスト環境を経た段階的ロールアウトなど、運用設計の重要性を強調しました。

8-2. 次章へのつながり

  • 次章(第7章)では、ネットワーク設定の構成と管理に進みます。IPアドレス設定やDNS構成、ファイアウォールルールなどをPowerShellでどう自動化・一括管理するかを学びます。
  • グループポリシーとの組み合わせで、ネットワーク上のクライアントやサーバーのTCP/IP設定セキュリティポリシーをさらに最適化できるシナリオも多数存在します。
  • ユーザー/グループ管理(第5章)とグループポリシー(第6章)を連携させることで、組織全体のセキュリティ標準化運用効率を飛躍的に高められるため、次章以降でも引き続き応用テクニックを学習していきましょう。