Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Windows 10でWSUSエラー0x8024401cが発生する原因と解決方法

Windows Server 2012 R2上で稼働する内部WSUSサーバーから、Windows 10 1607やWindows Server 2016の新規PCに更新プログラムを配信しようとした際、クライアント側でエラー0x8024401cが発生するケースがあります。WSUSコンソール上ではWindows 10のコンピューターは正しく表示されるものの、更新プログラムの検索に非常に長い時間がかかり、最終的にタイムアウトエラーとなってしまうのです。

エラー0x8024401cの内容

Windows Update画面には次のようなメッセージと共に、このエラーコードが表示されます。

「更新プログラムのインストール中に問題が発生しましたが、後でもう一度実行されます。このメッセージが繰り返し表示される場合は、Webで検索するか、サポートに問い合わせて情報を入手してください:(0x8024401c)」

Windows Updateのエラーコード一覧によると、0x8024401Cはクライアント側の応答タイムアウトを意味します。WU_E_PT_HTTP_STATUS_REQUEST_TIMEOUT — HTTPステータス408 — サーバーがリクエストの待機中にタイムアウトしたことを示しています。

新しいWindows 10のWindowsUpdate.logにも、WSUSとの通信タイムアウトに関連する以下のようなエラーが断続的に記録されます。

2017-08-29 11:14:21:870  816 1244 WS WARNING: There was an error communicating with the endpoint at 'https://dub-wsus:8530/ClientWebService/client.asmx'.
2017-08-29 11:14:21:870 816 1244 WS WARNING: There was an error receiving the HTTP reply.
2017-08-29 11:14:21:870 816 1244 WS WARNING: The operation did not complete within the time allotted.
2017-08-29 11:14:21:870 816 1244 WS WARNING: The operation timed out

注目すべきは、URL「https://dub-wsus:8530/ClientWebService/client.asmx」自体はクライアント側から正常に開けるという点です。つまりサーバーやネットワークに障害があるわけではなく、WSUSサーバーまたはクライアントが処理を完了するまでの時間が不足しているために、タイムアウトによって接続が切断されていると考えられます。初回の検索時にクライアントが膨大な更新リストを受け取ることで、IISワーカープロセスの制限値を超えてしまうのが主な原因です。

解決手順1:WSUSサーバーへのKB3159706適用

まず、WSUSサーバー(Windows Server 2012 R2)に更新プログラムKB3159706をインストールします。事前にWindows Server 2012 R2 Update 1が適用されている必要がある点に注意してください。

KB3159706(Windows Server 2012および2012 R2のWSUSでESD復号化を有効にする更新プログラム)を適用した後は、以下の手動操作を実施しないと、次回WSUSコンソールが開けなくなる可能性があります。

  • コマンドプロンプトで次のコマンドを実行します:"C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall /servicing
  • .NET Framework 4.5 の「HTTPアクティブ化」機能がインストールされているか確認します:Get-WindowsFeature -Name NET-WCF-HTTP-Activation45 インストールされていない場合は追加します。
  • WSUSでSSLを使用している場合は、記事の推奨事項に従って「C:\Program Files\Update Services\WebServices\ClientWebService\Web.config」を編集します(今回の環境では不要でした)。

web.configの編集

設定ファイル「C:\Program Files\Update Services\WebServices\ClientWebService\web.config」を編集し、以下のように変更します。

<httpRuntime maxRequestLength="4096" />

↓ 変更後

<httpRuntime maxRequestLength="204800" executionTimeout="7200"/>

その後、PowerShellでWSUSサービスを再起動します。

Get-Service -Name WsusService | Restart-Service -Verbose

解決手順2:IISアプリケーションプール(WsusPool)の設定変更

IISマネージャーを開き、「アプリケーションプール → WsusPool → 詳細設定」から以下の項目を変更します。

  • Private Memory Limit (KB)0 に設定(既定値は1258015)。0を指定するとWSUSワーカープロセスのメモリ使用量上限が解除され、1.2GB以上のメモリを使用できるようになります。
  • Queue Length25000 に増加(既定値は10000)。プールへの要求キュー長を拡張します。
  • Limit Interval (minutes)15 に増加(既定値は5分)。カウンターのリセットおよびCPUスロットリングの間隔を延長します。
  • Service Unavailable ResponseTcpLevel に変更(既定値はHttpLevel)。従来はクライアントにHTTP 503エラーが返されていましたが、変更後は単純に接続が切断されます。

解決手順3:接続タイムアウトの変更

IISマネージャーの「WSUS Administration サイト → 詳細設定」で、Connection Time-outの値を180から320に変更します。

IISの再起動

すべての設定変更後、IISを再起動して変更を反映させます。

IISReset

これらの対策により、Windows 10クライアントがWSUSサーバー上で更新プログラムを検索・確認するのに必要なタイムアウト時間とサーバーリソースが確保されます。実際にこの手順を適用した翌日には、すべてのクライアントが必要な更新プログラムを検索・インストールできるようになりました。

  1. WindowsでiTunesエラー13008が出たときの原因と解決方法

    iTunes エラー 13008 は、iTunes ライブラリが正しくない場所に保存されていることが原因で、PC がライブラリを正常に処理できなくなることで発生します。このエラーは、特に iTunes を新しいバージョンへアップグレードした直後に起こりやすいことで知られています。エラーを放置すると動作不良につながるため、原因を特定して適切に対処することが重要です。この記事では、iTunes エラー 13008 の具体的な解決手順をわかりやすく解説します。手順を実行することで、PC 全体の動作もより快適になります。 iTunes エラー 13008 の主な原因 このエラーは、Windows が

  2. 【完全解説】Windows Update エラー 0x8024401c の原因と8つの解決方法

    Windows 10 の更新プログラムをインストールしようとした際に、エラーコード「0x8024401c」が表示されてお困りではありませんか?この記事では、その問題を解決するための具体的な方法を詳しく解説します。エラー 0x8024401c が発生すると、更新プログラムのダウンロードやインストールがまったくできなくなってしまいます。Windows Update は、マルウェアやウイルス、スパイウェア、アドウェアなどの脅威から PC を守るために欠かせない重要な機能です。システム構成によっては、次のようなエラーメッセージが表示されることがあります。 「更新プログラムのインストール中にいくつかの問