WSUS トラブルシューティングの手順

以下は、壊れた WSUS インストールをトラブルシューティングするときに私が使用するガイドです。 これは、サーバー コンソール エラー、よくある「報告されないだけ」、またはイベント ログとして表示されることがあります。
Windows 7/8/Server 2008R2/2012R2 を使用している場合、wuaucltが動作します。
知っておく必要がある唯一のコマンドは wuauclt /resetauthorization /detectnow で、
wauauclt /reportnow は思ったとおりにはならず、あまり有用ではありません。

Windows 10/Server 2016 を使用している場合、wuauclt は廃止され、UsoClient.
usoclient.exe startscan は不足パッチの検出
usoclient.exe refreshsettings は変更があった場合に設定を更新
usoclient.exe startdownload はパッチのダウンロード
usoclient.exe startinstall はパッチのインストール

Powershell を使用してスキャン要求を開始するオプションも用意されました。

(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()

Powershell といえば、Microsoft は WSUS Server を管理するために多くのコマンドレットを利用可能にしています。

クライアントには WindowsUpdate モジュールがありますが、その唯一の機能は Get-WindowsUpdateLog で、これは Windows 10 で読み取り可能な WindowsUpdate.log ファイルの生成に使用されます。

クライアント上の Windows Update を管理するサード パーティ PS モジュールが存在します。 ここでは、デフォルト パスの C:\Windows\WID\ に WID がインストールされていると仮定します。
データベース関連のエラー (断片化以外) は通常、インストール時、多くの場合、インストール後のタスク シーケンス中に発生します。
WID に接続して SUSDB をドロップすることは可能ですが、この段階でのエラーは通常、完全なアンインストールと再インストールによって修正するのが最善です。
参考までに、SQLCMD または SQL Mgmt Studio のいずれかを使用して DB に接続できることを明記します。
接続文字列は np:\.\pipe\MICROSOFT##WID\tsql\query

select name from sys.sysdatabasesdrop table susdbselect name from sys.sysdatabases

Uninstallation

サーバーマネージャーを使用してアンインストールします。
WSUSをアンインストールしても、WIDが削除されない場合があります。 Uninstall-WindowsFeature -Name windows-internal-database
Reboot と c:\windows\WID\SUSDB.mdf および SUSDB_log.ldf ファイルを削除してください。

インストール

WSUS ロールを選択すると同時に、Windows は ASP.NET 4.6, RSAT Tools, IIS, および Windows Process activation service をインストールします。

管理用 Powershell プロンプトからインストールする

Install-WindowsFeature -Name Updateservices,UpdateServices-WidDB,UpdateServices-services -IncludeManagementTools

その後、GUI を起動する前に、以下を実行する

Check the client

クライアントが更新を受信しない原因はかなり多くの可能性を秘めています。

Check free hard drive space.

Check the Windowsupdate log.
On Windows 10 on an administrative powershell prompt and run Get-Windowsupdatelog.NET Framework 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.1.0 ※1 トラブルシューティング手順を確認しながら、最後に何も機能しなければクライアントを「リセット」するスクリプト2つを提供する予定です。 ログはデスクトップに表示されます。
Windows 7では、C:\Windows\WindowsUpdate.logを確認します。
これにより、問題がクライアントベースであるか、リモートエンドポイントとの通信に問題があるかが示されます。

クライアントのトラブルシューティングの最も簡単な最初のステップは、Windows Update Troubleshooterを実行することです。
Windows 10 では、Microsoft iFixIt for WSUS サイトにアクセスします。
すると、Windows Update Troubleshooter (cab ファイル形式) をダウンロードするよう促されます。 これを保存して実行します。
このページで Windows 7 を選択すると、ネットワーク (システム トレイ内) を右クリックして、[問題のトラブルシューティング] を行うように指示されます。

Windows 10 では、オンライン更新チェックを試します。

サービスが実行されていることを確認します。
Get-Service -Name wuauserv

次に、クライアントがグループポリシーからWSUS設定を受け取っているか確認します。
マシンに WSUS 設定ポリシーが適用されているか確認するには、gpresult /scope computerを実行します。
Query client registry for WSUS settings with Get-ItemProperty HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate

Telnet は、ポート接続の問題を確認するために使用することができます。 開いていてアクセス可能なポートにtelnet接続を試みる場合、telnetは新しい空白のコマンドウィンドウを開きます。 ポートにアクセスできない場合、コマンドは単に失敗します。 WSUS サーバーとポートへの接続を確立してみてください。
telnet wsus.server.com 8530

Powershell を使用して接続をテストしてみましょう。
Test-NetConnection -ComputerName <WSUS_Server> -Port 8530 -InformationLevel Detailed

イベント ログを確認するという当然の手順を忘れないでください。
Application Event log as well as App and Service Logs > Microsoft > Windows > WindowsUpdateClient

アンチウイルスやその他のエンドポイント セキュリティ エージェントがネットワーク通信を妨害する場合があります。

管理者コマンドプロンプトからsfc /scannowを実行し、クライアントに影響を与える可能性のあるファイルの破損をチェックします。

WSUSに動作するクライアントと動作しないクライアントがある場合、c:\program files\update services\WebServices\ClientWebServicesweb.configファイルをチェックし、動作するファイルと動作しないファイルの違いを比較します。

このクライアントがOSイメージから来ていてSysprepが走らなかった場合、問題は複数のクライアントが同じSUSClientIDキーを使用していることであることが考えられます。
HKLM\Software\Microsoft\Windows\CurrentVersion\WIndowsUpdate を確認し、現在の SUSClientID を削除します。
昇格したコマンド プロンプトから wuauclt /resetauthorization /detectnow を実行します。

以下の手順は、Windows Update クライアントのローカル キャッシュをクリアします。
以下の手順は、マシンを WSUS Server に再登録します。

Windows Update サービス
Get-Service -name WsusService

をチェックする

IIS サービス
Get-Service -name W3SVC

をチェックする

サーバーがリッスンしているか? 開いているポートを確認してください。
netstat -an | findstr 853*


You should see a blue and tan Client Service info page.
If not, we can try resetting the port. Open an elevated command prompt and run wsusutil usecustomwebsite falseにブラウズしてください。 これはWSUSが使用するポートを8530から80に変更しますので、ポート80で何も実行されていないことを確認します。
次に、wsusutil usecustomwebsite trueiisreset /restartを実行します。

ファイアウォールのルールを確認します。
サーバー側のログを確認します。 c:\program files\updateservices\logfiles\SoftwareDistribution
Run sfc /scannow to check for file corruption.

WSUSUtil.exe
  • wsusutil.exe reset
    • データベース内のすべての更新メタデータ行に、ファイルシステムに保存されている対応する更新ファイルがあるかどうかをチェックします。
  • wsusutil.exe checkhealth
    • Check Application eventlog for entries with source “Windows Server Update Services”
  • wsusutil.exe usecustomwebsite
    • WSUS が使うポートが変更されます。 また、変更中にポートを「リセット」します。

    IIS

    c:\windows\system32\logfiles\httperr\

    Check for http connection errors in
    Check the Application Pool is running.
    Check for the Application Pool is running.
    Check for the IP binding.

    Check IIS logs for connection errors c:\inetpub\logs\logfiles
    The default IIS installation by the WSUS installer does not install logging component however.
    You need to enable this under Manage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging

    and there is it. このガイドに従っても問題が解決しない場合は、少なくとも誤動作しているコンポーネントを発見し、Google 検索の焦点をどこに合わせればよいか、より良いアイデアが得られると思います。

コメントを残す

メールアドレスが公開されることはありません。