WinHTTP Web Proxy Auto-Discovery Service サービスの起動が失敗する。

Last Update: feedback 共有

こんにちは、Windows プラットフォーム サポートです。
今回は WinHTTP Web Proxy Auto-Discovery Service サービスの起動が失敗する事象についてご説明します。

事象

WinHTTP Web Proxy Auto-Discovery Service サービスが他のサービスと共通の svchost.exe 上で動作する場合、サービスの起動が失敗することがあります。
WinHTTP Web Proxy Auto-Discovery Service サービスが起動できない場合、HTTP 通信で PAC ファイルなどを利用したプロキシ サーバーの選定が正しく動作しなくなります。
また、インターネット オプションのプロキシ サーバー設定画面も開けなくなります。
なお、事象が発生すると、システム イベント ログには以下のイベントが記録されます。

エラー  Service Control Manager 7024      なし
WinHTTP Web Proxy Auto-Discovery Service サービスは、次のサービス固有エラーで終了しました: 
エンドポイント マッパー データベースを作成できませんでした。

対象 OS

Windows Server 2019
Windows Server 2022
Windows 10 version 1809 以降
Windows 11

原因

WinHTTP Web Proxy Auto-Discovery Service サービスが停止と起動を 500 回繰り返した場合に、RPC エンドポイントの登録が失敗するために本事象が発生します。

条件

既定の設定の場合には WinHTTP Web Proxy Auto-Discovery Service サービスは起動した状態が維持されて停止しませんので、本事象は発生しません。
しかし、以下のいずれかの条件を満たした場合に WinHTTP Web Proxy Auto-Discovery Service サービスがアイドル タイムアウト (タイムアウト時間は 27 分間) で停止することがあります。

・Connected User Experiences and Telemetry サービスのスタートアップの種類を [無効] にする。

・以下の通りグループ ポリシーを設定する。

グループ ポリシーのパス: 
  [コンピューターの構成]
  - [管理用テンプレート]
    - [Windows コンポーネント]
      - [データの収集とプレビュー ビルド]
        * [利用統計情報の許可]

設定値: "0 - セキュリティ" を選択

・以下の通りレジストリを設定する。

レジストリ キーのパス:HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DataCollection
値の名前: AllowTelemetry
値のデータ: 0

WinHTTP Web Proxy Auto-Discovery Service サービスは停止中の場合でも、任意のプロセスからリクエストを受け取った場合には起動します。
サービスの起動後、アイドル タイムアウト時間 (27 分間) までに、いずれのプロセスからもリクエストを受け付けなかった場合には、再度停止します。
その結果、WinHTTP Web Proxy Auto-Discovery Service サービスは停止と起動を繰り返す可能性があります。
WinHTTP Web Proxy Auto-Discovery Service サービスが他のサービスと共通の svchost.exe 上で動作する環境 (※) で、かつ WinHTTP Web Proxy Auto-Discovery Service サービスが停止と起動を 500 回繰り返した場合に、500 回以降は OS を再起動するまで RPC エンドポイントの登録が失敗してサービスが起動できなくなります。

(※) svchost.exe は、Windows 10 version 1703 以降または Windows Server 2019 以降では、搭載メモリに応じて以下の動作となります。

  • RAM が 3.5 GB 以下の場合、グループ化された複数のサービスが 1 つの svchost.exe プロセスを共有して動作します。
  • RAM が 3.5 GB を超える場合、各サービスは 1 つの svchost.exe プロセスで動作します。
    WinHTTP Web Proxy Auto-Discovery Service サービスは上記の動作となるため、本事象は RAM が 3.5 GB を超えるマシンでは発生しません。

対応策

WinHTTP Web Proxy Auto-Discovery Service サービスが、他のサービスと共存することなく、単一プロセスとして動作するように設定することで事象を回避できます。

確認方法

  1. 管理者権限をもつユーザーで対象マシンにログオンし、管理者として起動したコマンド プロンプトから以下のコマンドを実行します。

    tasklist /svc

  2. WinHttpAutoProxySvc サービスが他のサービスと svchost.exe プロセスを共有して動作しているか確認します。

    // 複数のサービスが svchost.exe プロセスを共有して動作している場合の出力例

    ※ PID が 428 のプロセスとして動作するサービスは WinHttpAutoProxySvc 以外にも複数存在します。(実際の PID および共存するサービスは環境によって異なる可能性があります。)

対処方法

  1. 管理者権限をもつユーザーで対象マシンにログオンし、管理者として起動したコマンド プロンプトから以下のコマンドを実行します。

    reg add "HKLM\SYSTEM\CurrentControlSet\Services\WinHttpAutoProxySvc" /v Type /t REG_DWORD /d 0x10 /f

  2. OS を再起動します。

    OS 起動後、再度確認方法に従って tasklist /svc コマンドを実行し、WinHttpAutoProxySvc サービスが独立した svchost.exe プロセスとして動作していることを確認します。

    // サービスが独立した svchost.exe プロセスとして動作している場合の出力例

    ※ PID が 1824 のプロセスとして動作するサービスは WinHttpAutoProxySvc のみとなります。(実際の PID は環境によって異なる可能性があります。)

既定の設定に戻す方法

  1. 管理者権限をもつユーザーで対象マシンにログオンし、管理者として起動したコマンド プロンプトから以下のコマンドを実行します。

    reg add "HKLM\SYSTEM\CurrentControlSet\Services\WinHttpAutoProxySvc" /v Type /t REG_DWORD /d 0x20 /f

  2. OS を再起動します。


[特記事項]
本情報の内容(添付文書、リンク先などを含む)は作成日時点でのものであり、予告なく変更される場合があります。