次の方法で共有


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 の場合は、 Computer 設定 セクションの [ 適用されたグループ ポリシー オブジェクト 見出しの下にあるGPRESULT.TXT ファイルで確認できます。 次に例を示します。

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

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

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

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

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

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

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

バックグラウンド インテリジェント転送サービス (BITS) は、WSUS によって、Microsoft Update からメインの 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

Note

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: Rpcs
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 ユーザーの Internet Explorer プロキシ設定で間違ったプロキシ サーバー名が指定されました。 このエラーは、NTLM/Negotiate ではない認証スキームに資格情報が指定されていても、ユーザー名またはパスワードが null の場合にも表示されます。 ユーザーの Internet Explorer プロキシ設定を有効なプロキシ サーバーに変更します。 または、NTLM/Negotiate 以外のスキームの資格情報を NULL ユーザー名/パスワードに変更します。
ERROR_WINHTTP_NAME_NOT_RESOLVED 0x80072ee7 サーバー/プロキシを BITS で解決できませんでした。 ジョブ所有者のコンテキストで同じコンピューター上の Internet Explorer で同じ問題が発生します。 ジョブ所有者のコンテキストを使用して、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 は、 Forbidden: アクセスが拒否されましたに対応します。 ジョブを実行しているアカウントのアクセス許可を確認します。
ERROR_NOT_LOGGED_ON 0x800704dd SENS サービスがユーザー ログオン通知を受信していません。 BITS (バージョン 2.0 以降) は、Service Control Manager からのログオン通知に依存します。これは、SENS サービスに依存します。 SENS サービスが開始され、正常に実行されていることを確認します。

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

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

Note

このアクションは、他のすべてのトラブルシューティングの試行が失敗した場合にのみ実行する必要があります。 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 プロキシ設定を確認できます。

プロキシ エラーがある場合は、Internet Explorer >Tools>Connections>LAN 設定に移動し、正しいプロキシを構成して、指定された WSUS URL にアクセスできることを確認します。

完了したら、 proxycfg -u コマンドを使用して、これらのユーザー プロキシ設定を WinHTTP プロキシ設定にコピーできます。 プロキシ設定を指定したら、コマンド プロンプトから 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を実行します。