WSUS クライアント エージェントに関する問題のトラブルシューティング

この記事は、Windows Server Update Services (WSUS) クライアント エージェントに関する問題を診断して解決するのに役立ちます。

元の製品バージョン: Windows Server Update Services
元の KB 番号: 10132

WSUS クライアント エージェントで問題が発生すると、さまざまな方法で問題が発生する可能性があります。 一般的な問題をいくつか次に示します。

  • グループ ポリシーのクライアント設定に問題がある可能性があります。
  • BITS に問題がある可能性があります。
  • WSUS エージェント サービスに問題がある可能性があります。
  • これは、クライアントがサーバーに到達できないネットワークの問題に関連している可能性があります。
  • 自動更新エージェント ストアに問題がある可能性があります。
  • これは、ディスクの複製によってクライアントに WSUS クライアント ID が重複する問題である可能性があります。

クライアントが正しく構成されていることを確認する

WSUS クライアント エージェントに関する問題のトラブルシューティングを行う場合は、まずクライアントが適切に構成されていることを確認します。 クライアントが適切な Active Directory グループ ポリシーを受信しており、WSUS サーバーの詳細が存在することを確認します。 これを行うには、次のコマンドを実行します。

GPRESULT /V > GPRESULT.TXT

メモ帳でテキスト ファイルを開き、WSUS ポリシーの名前を見つけます。 たとえば、WSUS ポリシーの名前が WSUS の場合は、[コンピューターの設定] セクションの [適用されたグループ ポリシー オブジェクト] 見出しの下にある GPRESULT.TXT ファイルで見つけることができます。 次に例を示します。

Applied Group Policy Objects  
-----------------------------  
Default Domain Policy  
WSUS  
Local Group Policy

WSUS 設定が存在しない場合、考えられる原因は次のとおりです。

  • システムにはドメインからのグループ ポリシーがありません。
  • グループ ポリシーはクライアント システムを対象としていません。

この問題を解決するには、各クライアントでグループ ポリシーが正常に更新されていること、および WSUS 設定が適切に構成されていることを確認します。

クライアントでグループ ポリシーを更新するには、コマンド プロンプトから を実行GPUpdate /forceします。

WSUS クライアントのグループ ポリシーの構成の詳細については、「グループ ポリシーを使用して自動更新を構成する」を参照してください。

BITS に関連する問題を確認する

バックグラウンド インテリジェント転送サービス (BITS) は、MICROSOFT Update から メイン WSUS サーバー、WSUS サーバーからクライアントに更新プログラムをダウンロードするために WSUS によって使用されるサービスです。 ダウンロードの問題の一部は、サーバーまたはクライアント コンピューターの BITS に関する問題が原因である可能性があります。 ダウンロードの問題をトラブルシューティングするときは、影響を受けるすべてのコンピューターで BITS が正しく実行されていることを確認する必要があります。

BITS サービスは、既定で LocalSystem アカウントで実行する必要があります。 正しいアカウントで実行するようにサービスを構成するには、次の手順に従います。

  1. コマンド プロンプトを開き、次のコマンドを実行します。

    sc config bits obj= LocalSystem
    

    obj=LocalSystem の間にスペースが必要です。 成功した場合は、次の出力が表示されます。

    [SC] ChangeServiceConfig SUCCESS
    
  2. BITS を停止して再起動します。

BITS サービスの状態を表示するには、コマンド プロンプトを開き、次のコマンドを実行します。

sc query bits

BITS が実行されている場合は、次の出力が表示されます。

SERVICE_NAME: bits  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 4 RUNNING

BITS が実行されていない場合は、次の出力が表示されます。

SERVICE_NAME: bits  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 1 STOPPED

通常、サービスを停止して再起動することで、BITS の問題を解決できます。 BITS サービスを停止して再起動するには、コマンド プロンプトから次のコマンドを実行します。

sc stop bits
sc start bits

注:

BITS を停止して再起動するには、ローカル管理者としてログオンする必要があります。

BITS が起動に失敗する

BITS サービスの開始に失敗した場合は、イベント ログで BITS 関連のエラーがないか調びます。 次の表を使用して、これらのエラーの原因を診断できます。

エラー名 エラー コード 説明
ERROR_SERVICE_DOES_NOT_EXIST 0x80070424 以下の BITS 構成の修復に関するセクションを 参照してください。
ERROR_SERVICE_NOT_IN_EXE 0x8007043B BITS が netsvcs svchost グループ内のサービスの 1 つとして一覧表示されない
ERROR_SERVICE_DISABLED 0x80070422 BITS が無効になっています。 BITS サービスを有効にします。
ERROR_SERVICE_DEPENDENCY_DELETED ERROR_SERVICE_DEPENDENCY_FAIL 0x80070433、0x8007042c BITS サービスの依存関係の一覧に表示されるサービスを開始できません。 BITS サービスの依存関係リストが正しいことを確認します。
Windows Vista: RpcSs、EventSystem (ピア キャッシュが有効になっている場合は http.sys と LanManWorkstation も)
Windows Server 2003: Rpcss、EventSystem
Windows XP: Rpcss
Windows 2000: Rpcss、SENS、Wmi
ERROR_PATH_NOT_FOUND 0x80070003 Windows 以前の Vista: %ALLUSERSPROFILE%\Microsoft\Network が存在しません
ERROR_FILE_NOT_FOUND 0x80070002 Parameters キーがありません。 次のキーと値が存在することを確認します。
HKLM\SYSTEM\CurrentControlSet\Services\BITS\Parameters\ServiceDll= %SystemRoot%\System32\qmgr.dll

REGDB_E_CLASSNOTREG、EVENT_E_INTERNALERROR 0x80040154、0x80040206 Windows 2000 の BITS は、SENS サービスと EventSystem サービスに依存します。 COM+ カタログが破損している場合、BITS がこのエラー コードで失敗する可能性があります。

BITS ジョブが失敗しています

クライアントが更新プログラムを受信するように適切に構成され、BITS が正しく構成されていて、BITS が正常に起動して実行されるように見える場合、BITS ジョブ自体が失敗する問題が発生している可能性があります。 これを確認するには、イベント ログで BITS 関連のエラーがないか調べます。 次の表を使用して、これらのエラーの原因を診断できます。

エラー名 エラー コード 説明
E_INVALIDARG 0x80070057 ユーザーのインターネット エクスプローラー プロキシ設定で正しくないプロキシ サーバー名が指定されました。 このエラーは、NTLM/Negotiate ではないが、ユーザー名またはパスワードが null である認証スキームに資格情報が指定されている場合にも表示されます。 ユーザーのインターネット エクスプローラー プロキシ設定を有効なプロキシ サーバーに変更します。 または、NTLM/Negotiate 以外のスキームの資格情報を NULL ユーザー名/パスワードに変更します。
ERROR_WINHTTP_NAME_NOT_RESOLVED 0x80072ee7 サーバー/プロキシを BITS で解決できませんでした。 ジョブ所有者のコンテキストで同じコンピューター上のインターネット エクスプローラーでも、同じ問題が発生します。 ジョブ所有者のコンテキストを使用して、Web ブラウザー経由で同じファイルをダウンロードしてみてください。
ERROR_HTTP_INVALID_SERVER_RESPONSE 0x80072f78 これは一時的なエラーであり、ジョブのダウンロードは続行されます。
BG_E_INSUFFICIENT_RANGE_SUPPORT 0x80200013 BITS では、HTTP 要求で範囲ヘッダーを使用して、ファイルの一部を要求します。 サーバーまたはプロキシ サーバーが範囲要求を理解せず、要求された範囲ではなく完全なファイルを返す場合、BITS はジョブをこのエラーで ERROR 状態にします。 エラー中にネットワーク トラフィックをキャプチャし、 Range ヘッダーを使用した HTTP GET 要求が有効な応答を取得しているかどうかを調べます。 プロキシ サーバーを調べて、Range 要求をサポートするように正しく構成されていることを確認します。
BG_E_MISSING_FILE_SIZE 0x80200011 BITS がHEAD要求を送信し、サーバー/プロキシが応答で Content-Length ヘッダーを返さない場合、BITS はこのエラーでジョブを ERROR 状態にします。 プロキシ サーバーと WSUS サーバーが正しく構成されていることを確認します。 Apache 2.0 プロキシ サーバーの一部のバージョンでは、この動作を示すことが知られています。
BG_E_HTTP_ERROR_403 0x80190193 サーバーがいずれかの要求で HTTP 403 応答を返すと、BITS はジョブをこのエラー コードと共に ERROR 状態にします。 HTTP 403 は、禁止: アクセスが拒否されましたに対応しています。 ジョブを実行しているアカウントのアクセス許可を確認します。
ERROR_NOT_LOGGED_ON 0x800704dd SENS サービスがユーザー ログオン通知を受信していません。 BITS (バージョン 2.0 以降) は、サービス コントロール マネージャーからのログオン通知に依存します。これは、SENS サービスによって異なります。 SENS サービスが開始され、正しく実行されていることを確認します。

破損した BITS 構成を修復する

破損した BITS サービス構成を修復するには、BITS サービス構成を手動で入力します。

注:

このアクションは、他のすべてのトラブルシューティングの試行が失敗した状況でのみ実行する必要があります。 BITS 構成を変更するには、管理者である必要があります。

破損した BITS 構成を修復するには、次の手順に従います。

  1. コマンド プロンプトを開きます。

  2. 次のコマンドを入力し、各コマンドを入力した後に Enter キーを押します。

    sc config bits binpath= "%systemroot%\system32\svchost.exe –k netsvcs"
    sc config bits depend= RpcSs/EventSystem
    sc config bits start= delayed-auto
    sc config bits type= interact type=own
    sc config bits error= normal
    sc config bits obj= LocalSystem
    sc privs bits privileges= SeCreateGlobalPrivilege/SeImpersonatePrivilege/SeTcbPrivilege/SeAssignPrimaryTokenPrivilege/SeIncreateQuotaPrivilege
    sc sidtype bits unrestricted
    sc failure bits reset= 86400 actions=restart/60000/restart/120000
    
  3. BITS を停止して再起動します。

WSUS エージェント サービスに関する問題

Windows Update サービスが正常に開始できることを確認します。

Windows Update サービスの現在の状態を表示するには、コマンド プロンプトを開き、次のコマンドを実行します。

sc query wuauserv

WUAUSERV が実行されている場合は、次の出力が表示されます。

SERVICE_NAME: wuauserv  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 4 RUNNING

WUAUSERV が実行されていない場合は、次の出力が表示されます。

SERVICE_NAME: wuauserv  
TYPE: 20 WIN32_SHARE_PROCESS  
STATE: 1 STOPPED

WUAUSERV サービスを正常に開始できることを確認します。 WUAUSERV を停止して再起動するには、ローカル管理者としてログオンする必要があります。

WUAUSERV サービスを開始するには、コマンド プロンプトから次のコマンドを実行します。

sc start wuauserv

クライアント エージェントが正常に起動して実行できない場合は、Windows Update エージェントのバージョンをチェックします。 エージェントが最新でない場合は、Windows Update エージェントを最新バージョンに更新します。

Windows Updateコンポーネントをリセットすることもできます。

修正プログラムを実行するか、エージェントを更新したら、 を実行 wuauclt /detectnowします。 windowsupdate.logを確認して、問題がないことを確認します。

WSUS サーバーにクライアントから到達可能であることを確認する

URL http://<WSUSSERVER:port>/iuident.cab にアクセスし、エラーなしでファイルをダウンロードできることを確認します。

WSUS サーバーにクライアントから到達できない場合、最も可能性の高い原因は次のとおりです。

  • クライアントに名前解決の問題があります。
  • プロキシ構成の問題など、ネットワーク関連の問題があります。

ネットワークで名前解決が機能していることを確認するには、標準のトラブルシューティング手順を使用します。 名前解決が機能している場合、次の手順はプロキシの問題をチェックすることです。 windowsupdate.log (C:\windows) を確認して、プロキシ関連のエラーがあるかどうかを確認します。 コマンドをproxycfg実行して、WinHTTP プロキシ設定をチェックできます。

プロキシ エラーが発生した場合は、[インターネット エクスプローラー ツール>Connections>>LAN 設定] に移動し、正しいプロキシを構成してから、指定した WSUS URL にアクセスできることを確認します。

完了したら、 コマンドを使用して、これらのユーザー プロキシ設定を WinHTTP プロキシ設定に proxycfg -u コピーできます。 プロキシ設定を指定したら、コマンド プロンプトからを実行wuauclt /detectnowし、エラーをチェック windowsupdate.logします。

自動更新エージェント ストアを再構築する

更新プログラムのダウンロードに問題があり、ソフトウェア配布ストアに関連するエラーが発生した場合は、クライアントで次の手順を実行します。

  • コマンド プロンプトからを実行sc stop wuauservして、自動更新 サービスを停止します。
  • ソフトウェア配布フォルダーの名前を変更します (C:\Windows\SoftwareDistribution など)。
  • コマンド プロンプトからを実行 sc start wuauserv して、自動更新サービスを再起動します。
  • コマンド プロンプトから を実行 wuauclt /resetauthorization /detectnowします。
  • コマンド プロンプトから を実行 wuauclt /reportnowします。

同じ SUSclient ID を持つクライアントを確認する

コンソールに表示される WSUS クライアントが 1 つだけである問題が発生する可能性があります。 または、クライアントのグループのうち、一度に 1 つだけがコンソールに表示されますが、表示される正確なクライアントは時間の経過と同時に変化する可能性があることに気付く場合があります。 この問題は、システムがイメージ化され、クライアントが同じ SUSclientIDを持つ場合に発生する可能性があります。

同じ SUSclientIDが原因で正常に動作しないクライアントの場合は、次の手順を実行します。

  • コマンド プロンプトからを実行sc stop wuauservして、自動更新 サービスを停止します。

  • 次の SUSclientID 場所からレジストリ キーを削除します。

    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate

  • コマンド プロンプトからを実行 sc start wuauserv して、自動更新サービスを再起動します。

  • コマンド プロンプトから を実行 wuauclt /resetauthorization /detectnowします。

  • コマンド プロンプトから を実行 wuauclt /reportnowします。