Q

Active Directoryでグループ・ポリシーをよく変更します。新しい設定が正しく反映されることを確認したいのですが,クライアントPCを毎回再起動するのは面倒です。設定したグループ・ポリシーを対象マシンに強制的に適用する方法はありませんか?

A

ドメインに参加しているメンバー・サーバーとクライアントPCは,システムの起動時以外に,あらかじめ設定された間隔でドメイン・コントローラ(DC)へグループ・ポリシーの更新を要求します。


表1●グループ・ポリシーを更新するタイミング

この間隔はメンバー・サーバーやクライアントとDCとでは異なっており,デフォルトでは表1のような設定になっています。


更新間隔はポリシーで変更可能
 実際の更新間隔は,この中の基本更新間隔にオフセットを足したものになります。オフセットの部分は,ネットワーク上の多数のマシンからグループ・ポリシーの更新要求が重複して,DCが過負荷にならないようにランダムな数値が生成されます。つまり,実際にはオフセットが0分のDCでは常時5分なのに対し,メンバー・サーバーとクライアントでは90~120分のランダムな間隔で更新されるようになっています。


△ 図をクリックすると拡大されます
図4●グループ・ポリシーの更新間隔はローカル・コンピュータ・ポリシーで変更できる

 これらの基本間隔やオフセットの設定値を変更するにはローカル・コンピュータのグループ・ポリシーを修正します(図4)。マイクロソフト管理コンソールに「グループ・ポリシー」スナップインを追加し,[ローカルコンピュータ]のグループ・ポリシー・オブジェクトを開きます。それから,[ローカルコンピュータポリシー]-[コンピュータの構成]-[管理用テンプレート]-[システム]-[グループポリシー]にある[コンピュータのグループポリシーの更新間隔]を編集して任意の値を設定します(DCの場合は[ドメインコントローラのグループポリシー更新間隔]になります)。

 この更新間隔は,グループ・ポリシーだけでなく,レジストリを変更することでも操作可能です(表2)。レジストリの変更についての詳細は日本語版サポート技術情報の「グループポリシーエディタで変更がすぐに適用されない」を参照してください(283312)。


表2●グループ・ポリシーの更新間隔に関連するレジストリ値

コマンドでポリシー強制適用も可能
 しかし,これらの設定で更新間隔を短くしても,設定したグループ・ポリシーがすぐに適用されるわけではありません。最新のグループ・ポリシーを強制的に適用したい場合は,コマンド・ラインからコマンドを入力します。ただし,具体的なコマンドはWindows2000と,Windows XP/2003では異なっているので注意してください。

 Windows 2000で[コンピュータの構成]に関するグループ・ポリシーを強制適用したい場合は,以下のコマンドを実行します。

 secedit /refreshpolicy machine_policy

 [ユーザーの構成]のグループ・ポリシーを適用したい場合は,最後の「machine_policy」の部分を「user_policy」に変えて実行します。

 グループ・ポリシーの更新処理では,パフォーマンスを考慮し,一部の更新されていないグループ・ポリシーは再適用されません。これらも強制的に再適用するには,上記に加え「/enforce」オプションも指定します。コマンドで強制的にグループ・ポリシーを適用する場合,通常はこの「/enforce」オプションを指定することを推奨します。詳細は英語版のサポート技術情報「Using Secedit.exe to Force GroupPolicy to Be Applied Again」を参照ください(227448)。

 一方,Windows 2003/XPでは,seceditの代わりに,gpupdateコマンドを使用するようになっています。コマンド・ラインから「gpupdate /force」と入力すれば,最新のグループ・ポリシーが適用されます。

 gpupdateでは,オプションで指定しない限り[コンピュータの構成]と[ユーザーの構成]を併せて適用するようになっています。詳細は英語版のサポート技術情報「A Description of theGroup Policy Update Utility」を参照ください(298444)。

瀧澤 俊臣