Group Policy Client サービス

Windows
10 /08 2014
Windows8.1を使うようになってから7ヶ月が経った。

数日前、息子用にアカウントを作成した。
アカウントの種類は、「標準」でも「管理者」でもなく「子供」にした。
「標準」との違いはよく分からないが、まあ「標準」より制限が厳しいのだろう。
とりあえずGoogle Chromeさえ使えれば良いし、余計な操作をさせたくないので、制限は厳しい方がいい。
しばらく使ってみたが、特に問題はなかった。

ところが2日ほど前から、私のアカウント(管理者)でログインすると、

windows サービスに接続できませんでした。Group Policy Clientサービスに接続できませんでした。このため、標準ユーザーはこのシステムにログオンできません。管理者ユーザはシステムイベントログを参照して、このサービスが応答しなかった原因を確認できます。

というメッセージが表示されるようになった。
私のアカウントでは問題なく使えているが、息子のアカウントでログインしようとすると

Group Policy Clientサービスに接続できませんでした。

というエラーになり、ログインできなくなっていた。

まず、イベントログを確認してみた。
(Win+X → [イベント ビューアー] → [Windows ログ] → [システム])
すると、以下のエラーが発生していた。

Group Policy Client サービスを、次のエラーが原因で開始できませんでした:
そのサービスは指定時間内に開始要求または制御要求に応答しませんでした。


イベントビューアー

次に、Group Policy Clientサービスの状態を確認してみた。
(Win+X → [コンピューターの管理] → [サービスとアプリケーション] → [サービス])
すると、Group Policy Clientというサービスは、存在していたが「実行中」になっていなかった。
サービス(適用前)
ただし、以前は「実行中」になっていたのかどうかまでは分からない。

何が原因でこうなったのか?
どうすれば直るのか?

いろいろ調べてみたところ、Microsoftコミュニティで有用な情報を見つけた。
http://answers.microsoft.com/ja-jp/windows/forum/windows_7-performance/windows/85d1de2e-5eb0-42b7-bb9f-98622f1d82cf

これによると、
「Windows Update 後の再起動処理で何らかの原因で問題が発生し、レジストリが破損してしまうことが原因のようです。」
とのこと。
確かに、私のPCはスリープから復帰した後、調子が悪くなる事があり、その時はシャットダウンができなくなる事がある。
10分以上待っても「シャットダウンしています」のままになり、キー操作を受け付けなくなる。
仕方がないので、電源ボタンを長押しして強制終了するか、リセットボタンを押していた。
良くないとは思いつつも、いつも再現できる訳ではないので原因が特定できずにいた。
おそらくこれが悪かったのだろう。

海外サイトの情報を参考にしてみては、とのこと。
http://social.technet.microsoft.com/Forums/windowsserver/en-US/ab15d601-0e38-4f9d-ab7f-5ad5ceda2a43/failed-to-connect-to-a-windows-service-group-policy-client-service?forum=winserverGP
これの#6に、レジストリを操作する解決策が書いてあった。

英語があまり得意ではない私だが、どうにかこの情報を読みながら、レジストリをいじってみた。
その結果、エラーメッセージが出なくなった。
せっかくなのでその時の手順を書いておくことにする。

1. レジストリエディタを開く。
Win+R → "regedit"

2. 左画面で、以下の位置まで移動する。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost

3. Svchostの配下に、20個くらいのキー(≒サブフォルダ)が並んでいるが、
この中に GPSvcGroup というキーが無かったので、作成した。
(Svchostを右クリック → 新規 → キー)

4. GPSvcGroup を開く。
右画面に、(規定) REG_SZ (値の設定なし) と表示される。

5. 左画面のGPSvcGroupを右クリック → 新規 → DWORD(32ビット値)
右画面で 新しい値#1 を AuthenticationCapabilities に書き換える。
AuthenticationCapabilities をダブルクリックし、[値のデータ]に3020と入力。(10進数なら12320)

6. 同様に、左画面のGPSvcGroupを右クリック → 新規 → DWORD(32ビット値)
右画面で 新しい値#1 を CoInitializeSecurityParam に書き換える。
CoInitializeSecurityParam をダブルクリックし、[値のデータ]に1と入力。(10進数でも16進数でも1)

最終的に下図のようになる。
レジストリエディタ

7. レジストリエディタを閉じて、PCを再起動。
(Windows8のシャットダウンは、実は休止に近い挙動をするので、この場合は再起動の方が良い)

以上の操作をしたところ、「Group Policy Clientサービスに接続できませんでした」のエラーが出なくなり、
息子のアカウントでログインできるようになった。

一応、イベントログとサービスを確認してみた。
イベントログにはエラーが出なくなった。
サービスでは、Group Policy Clientサービスが「実行中」になった。
サービス(適用後)
めでたしめでたし。

Paq

忘れっぽい中年プログラマが、日々の開発作業の中で、忘れると困ることを書き留めています。