グループポリシーをただちに適用する方法や更新間隔の設定方法、リモート更新する方法
本エントリーの目次
グループポリシーをただちに適用したい!
Active Directoryを使用しているドメイン環境では、ドメインコントローラーやメンバーサーバー、クライアントPCの各種設定を、GPOを使って管理・設定していることが多いです。
そして運用を続けていく中で、設定内容の変更が必要となることもあるでしょう。
こういった場合には、ドメインコントローラーのグループポリシー管理エディター(gpmc.msc)で、GPOの設定内容を変更します。
すると自動的に、対象のコンピューターやユーザーにグループポリシーの変更点が適用され、設定変更が行われるため、作業はとっても簡単です。
ただしこの方法(自動的に設定変更されるのを待つ方法)には、弱点があります。
それは、グループポリシーの設定変更の反映にタイムラグが発生することです。
詳細は後述しますが、初期設定の状態からGPOの更新間隔に関する設定を変更していないAD環境では、GPOの設定変更の自動反映はただちに行われるわけではありません。
そのため、GPOの設定をグループポリシー管理エディターで変更したのに、クライアントPCに変更が反映されない…。
と困ってしまった経験をお持ちの方もいらっしゃることでしょう。
そこで今回は、初期設定状態のグループポリシーの自動更新の間隔について。
また、ただちにグループポリシーを適用する方法や更新間隔の設定方法、グループポリシーをリモート更新する方法についてご紹介します!
グループポリシーの自動更新(適用)の間隔について
Active Directoryのグループポリシーの自動更新(適用)の間隔は、以下の2つの要素によって決定されています。
- 頻度
- ランダムな時間
頻度は、基本的な更新間隔の時間。
そしてランダムな時間は、ランダムなオフセットの時間であり、頻度に追加して更新間隔の決定に使用されます。
一定間隔で大量のPCが同時にグループポリシーの更新を行うと、ネットワークリソースの負荷が一時的に増大し、他の通信に悪影響を及ぼす。
ドメインコントローラーへのアクセスが増え、負荷がかかってしまうなどの問題が発生する恐れがあります。
そこでこれら問題の発生を防ぐため、基本時間(頻度)に加えてランダムなオフセット時間を設定し、各PCの更新タイミングが意図的にズレるような仕組みとなっているのです。
ただしドメインコントローラーについては、オフセット時間が0に設定されており、基本時間(頻度)のとおりに更新が実行されます。
グループポリシーの自動更新(適用)の間隔はドメインコントローラーでは5分、その他のPCは90~120分!
初期設定では、ドメインコントローラーは頻度が5分、ランダムな時間が0分に設定されています。
またその他のPC(クライアントPC)などは頻度が90分、ランダムな時間が30分の設定となっています。
したがってドメインコントローラーでは、5分(5 + 0)間隔でのグループポリシーの適用。
その他のPCでは、90~120分(90 + 0 ~ 90 + 30)での適用というわけです。
こういった仕組みのため、特にクライアントPC(ドメインコントローラー以外のPC)では設定変更の反映が遅い!
ただちに設定が変更されない!と感じることがあるのです。
特にグループポリシーの設定や動作をテストしている際、反映が遅いとテストをスピーディーに進めることができず、本当に困ります。
グループポリシーをただちに(即時)適用する方法
グループポリシーをただちに(即時)適用したい場合、対象のPC上でコマンド操作を実行する方法が最も簡単でしょう。
この方法ではgpupdateコマンドを実行することで、適用すべきグループポリシーをドメインコントローラーから取得。
そして自身に変更点をただちに設定することで、グループポリシーの内容を即時に適用する、という仕組みです。
具体的には、対象のPCでPowerShellかコマンドプロンプトを起動し、以下のコマンドを入力・実行します。
1 | gpupdate /force |
『gpupdate /force』コマンドを実行すると、『ポリシーを最新の情報に更新しています…』と表示され、グループポリシーの即時適用が開始されます。
ポリシーの内容やネットワークの状態によって実行時間は異なりますが、過去の経験から性能に不足がなければ、15~25秒くらいで適用が完了するケースが多いですね。
『gpupdate /force』コマンドの実行が完了すると、以下のように『正常に完了しました』と表示されるので、PowerShellやコマンドプロンプトを終了してください。
1 2 3 4 5 6 7 | PS C:\> gpupdate /force ポリシーを最新の情報に更新しています... コンピューター ポリシーの更新が正常に完了しました。 ユーザー ポリシーの更新が正常に完了しました。 PS C:\> |
『gpupdate /force』コマンドを実行しても、ポリシーの変更が適用されない場合の対処法
『gpupdate /force』コマンドを実行しても、ポリシーの変更が適用されない!
という場合には、対象のPCを再起動してから再度ログオンしてみてください。
グループポリシーの中には、適用にPCの再起動や再ログオンが必要な設定も存在します。
そのため『gpupdate /force』コマンドを実行後、PCを再起動してから再度ログオンすることで、そういったポリシーもしっかりと適用される、というわけです。
こういった事情から、うまくポリシーが適用されない…というケースでは、PCの再起動と再ログオンを試してみると良いでしょう。
『gpupdate』だけではダメなの?
実は『gpupdate』コマンド(/forceなしのコマンド)でも、グループポリシーは適用されます。
ただし『gpupdate』コマンドと『gpupdate /force』コマンドは内部動作が異なり、『gpupdate /force』は『gpupdate』の内容を含むため、一般的には『gpupdate /force』が使われることが多く、本エントリーではこちらをご紹介しています。
前者は、コンピューターやユーザーに対するグループポリシーの設定のうち、変更があった部分のみが適用される。
そして後者では、変更部分だけではなく、すべてのグループポリシーを再ロードし再設定が行われます。
変更したグループポリシーや、定義しているにも関わらず、何らかの理由によりポリシーが正常に適用されない…。
という場合に『gpupdate /force』を使うことで改善される可能性があります。
すべてを再設定する都合上、『gpupdate /force』の方が『gpupdate』に比べて時間がかかる。
というデメリットがあるものの、『gpupdate /force』を実行した方が確実に設定が適用されると考えられるため、『gpupdate /force』の使用をおすすめしています。
グループポリシーの自動更新(適用)の間隔を変更する方法
先ほどグループポリシーの自動更新(適用)の間隔についてで紹介したとおり、グループポリシーの自動更新(適用)の間隔は、初期設定ではドメインコントローラーは5分。
その他のPCでは、90~120分となっています。
この更新間隔の設定を変更したいケースもあるでしょう。
たとえば、ネットワークリソースへの負荷を減らすために更新間隔を長くしたいだとか。
頻繁にグループポリシーの設定を変更するので、設定変更が早めに適用されるように更新間隔を短くしたい、といったケースでしょうか。
こういった場合には、グループポリシーの自動更新(適用)の間隔を変更する設定を、グループポリシーでドメインコントローラーやクライアントPCに配布することで対応可能です。
ドメインコントローラーのポリシー更新間隔を設定・変更する方法
ドメインコントローラーのポリシー更新間隔を設定・変更したい場合には、グループポリシー管理エディター(gpmc.msc)を起動し、任意のGPOの編集画面を開いてください。
そして以下のように展開操作を実行します。
[コンピューターの構成] – [ポリシー] – [管理用テンプレート] – [システム] – [グループポリシー] – [ドメインコントローラーのグループポリシーの更新間隔を設定する]
『ドメインコントローラーのグループポリシーの更新間隔を設定する』が初期設定の『未構成』の場合、内部的には『頻度』が5分。
『ランダムな時間』が0分に設定されているものとして、扱われています。
任意の『頻度』、『ランダムな時間』を設定したい場合には、『ドメインコントローラーのグループポリシーの更新間隔を設定する』を『有効』に設定し、『頻度』と『ランダムな時間』に設定値を入力してください。
『頻度』は0 ~ 44640分(31日)、『ランダムな時間』は0 ~ 1440分(24時間)の範囲で設定可能です。
また『頻度』を0分に設定した場合、7秒に1回グループポリシーが更新されるようになります。
GPOの設定が終わったら、ドメインコントローラーが属する『Domain Controllers』OUにリンクすることでGPOが適用され、更新間隔が設定のとおりに変更されます。
コンピューターのポリシー更新間隔を設定・変更する方法
コンピューターのポリシー更新間隔の設定・変更は、ドメインコントローラーのポリシー更新間隔を設定・変更する方法とほとんど同じ方法で対応可能です。
異なるのは設定対象のポリシーのみであり、『頻度』と『ランダムな時間』の設定方法は同じであるため、対象のポリシーのみをご紹介します。
グループポリシー管理エディターで任意のGPOの編集画面を開き、以下ポリシーを設定後、対象のコンピューターが属するOUにリンクしてください。
[コンピューターの構成] – [ポリシー] – [管理用テンプレート] – [システム] – [グループポリシー] – [コンピューターのグループポリシーの更新間隔を設定する]
ユーザーのポリシー更新間隔を設定・変更する方法
ユーザーのポリシー更新間隔の設定・変更も、ドメインコントローラーのポリシー更新間隔を設定・変更する方法とほとんど同じ方法で対応可能であり、異なるのは設定対象のポリシーのみです。
グループポリシー管理エディターで任意のGPOの編集画面を開き、以下ポリシーを設定後、対象のユーザーが属するOUにリンクしてください。
[ユーザーの構成] – [ポリシー] – [管理用テンプレート] – [システム] – [グループポリシー] – [ユーザーのグループポリシーの更新間隔を設定する]
グループポリシーをリモート更新する方法
先ほどご紹介したグループポリシーをただちに(即時)適用する方法では、ドメインコントローラーのグループポリシー管理エディターで、GPOに設定したグループポリシーを変更後、ただちに設定を反映したい場合には、対象のPCにログオン(またはリモートログオン)して『gpupdate /force』コマンドを実行する必要があります。(場合によっては再起動・再ログオンも必要。)
この方法は、対象のPCが数台であれば大きな手間とはなりません。
ですが対象のPCが十数台、または数百台ともなると手間がかかりすぎてしまい、現実的な方法とは言えません。
だからと言って、クライアントPCの自動更新間隔である90~120分も待つことはできない!
という場合もあるでしょう。
こういったケースでは、Windows Server 2012以降で利用可能なグループポリシーのリモート更新を使うと良いでしょう。
グループポリシーのリモート更新は、グループポリシー管理エディター上での操作により、特定のOUに属するコンピューター(またはユーザー)に対し、ただちにポリシーを更新、変更を反映する※ことができます。
※厳密には、ただちに更新するように指示を出すものであり、即時更新の確実な実施を保証するものではありません。対象のPCのファイアウォールの設定に問題があった場合など、更新が実行されないこともあります。
グループポリシーのリモート更新を実行するためのファイアウォールの設定構成
グループポリシーのリモート更新を利用する場合、事前にファイアウォールの設定が必要です。
任意のGPOに、以下ファイアウォールのポリシーを定義し、対象のOU(リモート更新を利用するOU)に対してリンクしてください。
- Windows Management Instrumentation(WMI受信)
- スケジュールされたリモートタスク管理(RPC)
- スケジュールされたリモートタスク管理(RPC-EPMAP)
上記ファイアウォールのポリシーが適用されるまでは、グループポリシーのリモート更新がファイアウォールにブロックされてしまい、リモート更新が失敗します。
したがってリモート更新を利用したい場合には、事前に上記設定を行っておき、自動更新(初期設定では90~120分間隔)により設定を対象のPCに適用しておくと良いでしょう。
参考:GPOでWindowsのファイアウォールを設定したり、有効化を強制する方法
尚、Windowsの標準機能のファイアウォール機能である『Windows Defender ファイアウォール』や、『セキュリティが強化されたWindowsファイアウォール』ではなく、シマンテックさんやカスペルスキーさんなど、サードパーティーのウイルス対策ソフトウェアに付属するファイアウォールを使用している場合には、上記通信をブロックしないような設定をそれぞれに行ってください。
グループポリシー管理エディターでの、グループポリシーのリモート更新の操作方法
ファイアウォールの設定が完了したら、グループポリシー管理エディターでリモート更新を実行したいコンピューター(またはユーザー)が属するOUを右クリックし、コンテキストメニューを表示してください。
表示されたメニューの中から、『グループポリシーの更新』メニューをクリックします。
『グループポリシーの更新を強制』画面が表示されるので、リモート更新を実行する場合には『はい』をクリックします。
以上の操作により、リモート更新の実行指示が対象のPCに行われ、リモート更新が開始されます。
『リモートグループポリシーの更新結果』画面が表示されるので、処理が完了してから内容を確認し、『閉じる』ボタンをクリックしてください。
対象のコンピューターが起動していない、ファイアウォールが正しく構成されていないなどの理由により、リモート更新が失敗した場合には、『エラーコード』と『エラーの説明』列に内容が表示されるので、それぞれに対して必要な対応を行うと良いでしょう。
以上、参考になさってくださーい!