以下は、壊れた 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\ClientWebServices
でweb.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 true
とiisreset /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 underManage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging
and there is it. このガイドに従っても問題が解決しない場合は、少なくとも誤動作しているコンポーネントを発見し、Google 検索の焦点をどこに合わせればよいか、より良いアイデアが得られると思います。