グループポリシー(GPO)が適用されない時の切り分け — 強制適用・確認コマンドとよくある原因
「設定したはずのグループポリシーが、クライアントに効いていない」——AD運用で必ず一度は踏むトラブルです。原因はリンク・優先順位・スコープ(フィルタリング)・レプリケーションのどこかにあることがほとんど。この記事では、実務での切り分け手順を、確認コマンドとチェックリストで整理します。
まず現状を把握する(gpupdate と gpresult)
あてずっぽうで設定を触る前に、「いま何が適用され、何が拒否されているか」を確認します。クライアント(対象PC)でコマンドプロンプトを管理者で開き、次を実行します。
gpupdate /force ← ポリシーを強制的に再適用
gpresult /r ← 適用/拒否されたGPOと理由を表示
gpresult /h report.html ← 見やすいHTMLレポートを出力
gpresult の結果には、「適用されたグループポリシーオブジェクト」と、「次の理由で拒否されたGPO」が並びます。ここに目的のGPOが拒否側に出ていれば、その理由(フィルタリング/セキュリティ/WMI など)が原因のヒントになります。そもそも一覧に出てこないなら、リンクや到達性の問題を疑います。
GPOの強制適用・確認コマンド早見
切り分けで使うコマンドを、目的別にまとめます。gpupdate・gpresult は標準で入っています。PowerShellの Invoke-GPUpdate・Get-GPResultantSetOfPolicy は GroupPolicyモジュール(ドメインコントローラー、またはRSATの「グループ ポリシーの管理ツール」を入れたPC)で使えます。
強制適用する(gpupdate)
| コマンド | 意味 |
|---|---|
gpupdate /force | 変更の有無にかかわらず、すべてのポリシーを再適用 |
gpupdate /target:computer /force | コンピューターの構成だけ再適用(/target:user でユーザーの構成だけ) |
gpupdate /force /wait:0 | 処理の完了を待たずにすぐ戻る(既定は600秒まで待つ) |
gpupdate /force /boot | 反映に再起動が必要な設定があれば再起動する |
gpupdate /force /logoff | 反映にサインアウトが必要な設定があればサインアウトする |
適用結果を確認する(gpresult)
| コマンド | 意味 |
|---|---|
gpresult /r | 適用されたGPO・拒否されたGPOの概要を表示 |
gpresult /r /scope computer | コンピューターの構成だけ表示(管理者として実行。/scope user でユーザーの構成だけ) |
gpresult /h C:\temp\gp.html /f | 設定値まで含むHTMLレポートを出力(/f は上書き)。ブラウザで開くと、どのGPOのどの設定が勝ったかまで見られる |
gpresult /v | 詳細表示(/z でさらに詳細) |
gpresult /s PC01 /user CONTOSO\user1 /r | 別のPC(例:PC01)の、特定ユーザーの結果を確認 |
GUIで見たい場合は rsop.msc(ポリシーの結果セット)もありますが、古い仕組みで、グループポリシーの基本設定(Preferences)などは表示されません。いまは gpresult /h のHTMLレポートを使うほうが確実です。
リモートのPCに強制適用する
| 方法 | 使い方 |
|---|---|
Invoke-GPUpdate -Computer PC01 -Force -RandomDelayInMinutes 0 | PowerShellで、指定したPCに gpupdate /force 相当を実行させる。既定では最大10分のランダムな待ち時間が入るので、すぐ実行したいときは -RandomDelayInMinutes 0 を付ける |
| グループ ポリシーの管理(GPMC)で、OUを右クリック →「グループ ポリシーの更新」 | そのOUに入っているコンピューターに、まとめて更新を指示する(Windows Server 2012以降のGPMC) |
どちらも、対象PCにスケジュールタスクを作って gpupdate を実行させる仕組みです。対象PCのWindowsファイアウォールで、次の受信規則が許可されていないと失敗します(規則の表示名はOSの言語によって異なります)。
Remote Scheduled Tasks Management (RPC)Remote Scheduled Tasks Management (RPC-EPMAP)Windows Management Instrumentation (WMI-In)
失敗の理由を調べる(イベントログ)
適用処理そのものが失敗している場合は、イベントビューアーの アプリケーションとサービス ログ → Microsoft → Windows → GroupPolicy → Operational を見ます。DCへの接続失敗やSYSVOLの読み取り失敗など、gpresult には出ない処理の失敗理由が記録されます。PowerShellなら Get-WinEvent -LogName "Microsoft-Windows-GroupPolicy/Operational" -MaxEvents 30 で直近のイベントを確認できます。
GPOの優先順位を理解する(後勝ちとLSDOU)
複数のGPOが同じ設定を持つと、あとから適用されたものが勝ちます(後勝ち)。適用される順番は、頭文字をとって LSDOU と覚えます。
ただし例外が2つあります。
- 強制(Enforced):上位のGPOを「強制」にすると、下位のGPOで上書きされません。後勝ちの原則を覆します。
- 継承のブロック(Block Inheritance):OUで上位からの継承を止められます。ただし「強制」には勝てません(強制されたGPOはブロックを貫通して適用されます)。
「効いてほしい設定が、別のGPOに後勝ちで上書きされている」「継承のブロックで止まっている」というのは典型パターン。gpresult でどのGPOが勝っているかを必ず確認します。
よくある原因チェックリスト
優先順位で説明がつかない場合、次を上から順に確認します。
1. リンクされているか/有効か
GPO自体は作っただけでは効きません。対象のOU(またはドメイン・サイト)にリンクされ、そのリンクが有効になっている必要があります。「作ったが、対象OUにリンクし忘れていた」「リンクを無効化していた」はよくある原因です。
2. スコープ(セキュリティフィルタリング)
GPOは既定で「Authenticated Users(認証されたユーザー)」に適用されますが、これを特定グループに絞る(セキュリティフィルタリング)運用もよくあります。ここで対象のユーザー/コンピューターに「適用」の権限があるかを確認します。
要注意(MS16-072の罠): 2016年6月以降のセキュリティ更新で、GPOの取得にコンピューターの権限が使われるようになりました。このため、フィルタリングでAuthenticated Users を丸ごと外していると、GPOが適用されなくなります。対策は、Authenticated Users に「読み取り(Read)」だけ戻す(適用は不要)、または Domain Computers に読み取りを付与すること。「昔は効いていたのに、更新後に一斉に効かなくなった」ときは、まずこれを疑います。
3. 適用先の間違い(コンピューター構成 vs ユーザー構成)
GPOにはコンピューターの構成とユーザーの構成があり、効く相手が違います。コンピューター設定はコンピューターが置かれたOU、ユーザー設定はユーザーが置かれたOUのGPOで適用されます。「ユーザー設定を、PCの入っているOUにリンクしたが効かない」はこの取り違えが原因。PCのOU側でユーザー設定を効かせたいときは、ループバック処理モード(Loopback:置換/マージ)を使います。
4. WMIフィルタ
GPOにWMIフィルタ(例:OSが特定バージョンのときだけ適用)が付いていると、条件に合わないクライアントには適用されません。意図せぬ除外になっていないか確認します。
5. SYSVOL/ADのレプリケーション
GPOは、設定の実体(テンプレート)がSYSVOLに、管理情報がADに分かれて保存されます。DCが複数あると、片方のDCにだけ変更が反映され、レプリケーションが遅れている間は、そのDCを参照したクライアントに古い設定が適用されます。別のDCで gpresult を比較したり、SYSVOLの複製状態を確認します。
6. DC到達性・時刻・DNS
クライアントが正しいドメインコントローラーに到達できているか、時刻がずれていないか(Kerberos認証は時刻ずれに厳しい)、DNSでDCを正しく引けているかも基本の確認点です。VPN越しやサイト構成が絡む環境では、参照するDCが想定と違うことがあります。
「1回では反映されない」設定もある
Windowsには高速ログオン最適化という仕組みがあり、一部の設定(ソフトウェアの割り当て、フォルダーリダイレクト、一部のスクリプトなど)は反映に2回のログオン/再起動が必要です。「1回再起動したが効かない」ときは、もう一度試すか、gpupdate /force のあとにサインアウト→サインインして確認します。
切り分けの流れ(まとめ)
迷ったら、次の順でたどると原因に近づけます。
gpresult /rで「適用/拒否」を確認 → 目的のGPOはどちら側か- 拒否側なら理由(フィルタリング/WMI/セキュリティ)を見る
- 一覧に無いならリンク・到達性(DC/DNS/時刻)を疑う
- 効いているが上書きされるなら優先順位(後勝ち・強制・ブロック)を確認
- 「更新後に一斉に効かなくなった」ならAuthenticated Users の読み取り(MS16-072)を確認
- DCによって結果が違うならSYSVOL/ADのレプリケーションを確認
よくある質問
Q. グループポリシーを強制適用するコマンドは?
A. 対象のPCで gpupdate /force です。コンピューターの構成だけなら /target:computer、ユーザーの構成だけなら /target:user を付けます。リモートのPCに実行させる方法も含めて、コマンド早見にまとめています。
Q. 適用されているか確認するコマンドは?
A. 概要は gpresult /r、設定値まで確認するなら gpresult /h C:\temp\gp.html /f でHTMLレポートを出して見ます。
Q. gpupdate /force と gpupdate の違いは?
A. 通常の gpupdate は変更があったポリシーだけを再適用します。/force を付けると、変更の有無にかかわらず全ポリシーを再適用します。切り分け時は /force が確実です。
Q. 特定のユーザーだけ、あるいは特定のPCだけ効かないのはなぜ?
A. そのユーザー/PCが対象のOUに入っていない、フィルタリングの対象グループに入っていない、WMIフィルタの条件から外れているのいずれかがほとんどです。gpresult をそのユーザー/PCで実行して比較します。
🔗 関連:リモートデスクトップに接続できない時の切り分け / Windowsサービスアカウントと権限をやさしく図解 / WindowsのプロキシはなぜGUIだけでは足りない? / ネットワークセキュリティの基礎 / 記事一覧