Steg för felsökning av WSUS

Nedan följer den guide jag använder när jag felsöker en trasig WSUS-installation. Detta kan visa sig som ett serverkonsolfel, det alltid populära ”den rapporterar bara inte in” eller via händelseloggen. Jag går igenom komponenterna i WSUS och hur man kontrollerar och ser till att var och en av dem fungerar korrekt.

Först en notering om vad som finns tillgängligt på din plattform.
Om du har Windows 7/8/Server 2008R2/2012R2 så fungerar wuauclt för dig.
Det enda riktiga kommandot du behöver känna till är wuauclt /resetauthorization /detectnow.
wauauclt /reportnow gör inte vad du tror och är inte särskilt användbart.

Om du har Windows 10/Server 2016 så har wuauclt avvecklats och du har UsoClient.
usoclient.exe startscan för att upptäcka saknade patchar
usoclient.exe refreshsettings för att uppdatera inställningar om några ändringar har gjorts
usoclient.exe startdownload för att ladda ner patchar
usoclient.exe startinstall för att installera patchar

Du har också möjlighet att använda Powershell för att initiera en skanningsförfrågan.

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

På tal om Powershell gör Microsoft ett antal cmdlets tillgängliga för hantering av WSUS Server.För att se om dessa är tillgängliga för dig kör du

Get-Command -Module UpdateServices

Dessa cmdlets är i första hand inriktade på distribution och hantering av servern, patchar och datorer, inte felsökning.

På klienten finns en WindowsUpdate-modul men dess enda funktion är Get-WindowsUpdateLog som används för att generera en läsbar WindowsUpdate.log-fil i Windows 10.

Det finns en PS-modul från tredje part för hantering av Windows Update på klienten.

Install-Module PSWindowsUpdate Import-Module PSWindowsUpdate Add-WUServiceManager -ServiceID 7971f918-a847-4430-9279-4a52d1efe18d Get-Command -Module PSWindowsUpdate Get-WUList –MicrosoftUpdate Get-WUInstall –MicrosoftUpdate –AcceptAll –AutoReboot 

Databas

WSUS kan välja mellan att använda en intern WID-databas (Windows Internal DB) eller SQL-databas. Jag antar att den är installerad med WID på standardsökvägen C:\Windows\WID\.
Databasrelaterade fel (andra än fragmentering) uppstår vanligtvis vid installationstillfället, ofta under uppgiftssekvensen efter installationen.
Det är visserligen möjligt att ansluta till WID och släppa SUSDB, men fel i detta skede åtgärdas oftast bäst genom en fullständig avinstallation och ominstallation.
För referensändamål anger jag att du kan använda antingen SQLCMD eller SQL Mgmt Studio för att ansluta till DB:n.
Kopplingssträngen är np:\.\pipe\MICROSOFT##WID\tsql\query

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

Avinstallation

Avinstallera med hjälp av Serverhanteraren.
Säkerställ att mappen för WSUS-innehållet är borta liksom IIS WSUS Administration site.
Avinstallation av WSUS tar inte alltid bort WID. Ta bort den i Powershell med Uninstall-WindowsFeature -Name windows-internal-database
Reboot and delete c:\windows\WID\SUSDB.mdf and SUSDB_log.ldf files.

Installation

Samtidigt som WSUS-rollen väljs installerar Windows ASP.NET 4.6, RSAT Tools, IIS och Windows Process activation service.

Installera från en administrativ Powershell-prompt

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

Efteråt, innan du startar GUI, kör du:

Kontrollera klienten

Det finns en hel del potentiella orsaker till att en klient inte får uppdateringar. Jag kommer att gå igenom en rad felsökningssteg och i slutet ge två skript för att ”återställa” klienten om inget annat fungerar.

Kontrollera ledigt hårddiskutrymme.

Kontrollera Windowsupdate-loggen.
På Windows 10 öppnar du en administrativ powershell-prompt och kör Get-Windowsupdatelog. Loggen kommer att finnas på skrivbordet. Vänta tills kommandot har körts färdigt.
På Windows 7 kontrollera C:\Windows\WindowsUpdate.log
Detta bör indikera om problemet är klientbaserat eller om det är ett problem med att kommunicera till en fjärrslutpunkt.

Det enklaste första steget för att felsöka klienten är att köra Windows Update Troubleshooter.
På Windows 10 går du till webbplatsen Microsoft iFixIt for WSUS.
Det kommer att uppmana dig att ladda ner Windows Update Troubleshooter (i cab-filformat). Spara den och kör den.
Om du väljer Windows 7 på den här sidan uppmanas du att högerklicka på Network (i systemfältet) och ”Troubleshoot problems”. Du kan förmodligen hoppa över det här steget.

På Windows 10 försök med en onlineuppdateringskontroll.

Kontrollera att tjänsten körs.
Get-Service -Name wuauserv

Kontrollera sedan att klienten tar emot WSUS-inställningar från grupprincip.
Kör gpresult /scope computer för att se om din policy för WSUS-inställningar tillämpas på maskinen.
Sök i klientregistret efter WSUS-inställningar med Get-ItemProperty HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate

Telnet kan användas för att kontrollera problem med portanslutning. Om du försöker göra en telnetanslutning till en öppen och tillgänglig port kommer telnet att öppna ett nytt tomt kommandofönster. Om porten är otillgänglig kommer kommandot helt enkelt att misslyckas. Försök att upprätta en anslutning till WSUS-servern och porten. Om anslutningen misslyckas kontrollera brandväggsinställningarna.
telnet wsus.server.com 8530

Vi använder Powershell för att testa anslutningen.
Test-NetConnection -ComputerName <WSUS_Server> -Port 8530 -InformationLevel Detailed

Glöm inte det självklara steget att kontrollera händelseloggen.
Händelseloggen för program samt loggar för appar och tjänster > Microsoft > Windows > WindowsUpdateClient

Ibland kan antivirusprogram eller andra säkerhetsagenter för slutpunkter störa nätverkskommunikationen. Överväg att inaktivera eller avinstallera dessa för testning.

Kör sfc /scannow från en administrativ kommandotolk för att kontrollera om det finns filkorruption som kan påverka klienten.

Om du har både fungerande och icke fungerande klienter i WSUS kontrollerar du c:\program files\update services\WebServices\ClientWebServices för en web.config-fil och jämför en fungerande fil med en icke fungerande fil för skillnader.

Om den här klienten kommer från en OS-avbildning och Sysprep inte kördes kan problemet vara att flera klienter använder samma SUSClientID-nyckel.
Kontrollera HKLM\Software\Microsoft\Windows\CurrentVersion\WIndowsUpdate och ta bort den aktuella SUSClientID.
Kör wuauclt /resetauthorization /detectnow från en upphöjd kommandotolk.

Sekvensen nedan rensar den lokala cachen för Windows Update-klienten
Sekvensen nedan återregistrerar en maskin med WSUS-servern:

Kontrollera servern

Kontrollera ledigt utrymme på hårddisken, för startvolymen och förvaringsvolymen.

Kontrollera Windows Update-tjänsten
Get-Service -name WsusService

Kontrollera IIS-tjänsten
Get-Service -name W3SVC

Har servern lyssnat? Kontrollera öppna portar.
netstat -an | findstr 853*

Kan du bläddra till
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. Detta ändrar porten som WSUS använder från 8530 till 80, så kontrollera att inget körs på port 80.
Kör nu wsusutil usecustomwebsite true följt av iisreset /restart. Detta ändrar porten tillbaka till 8530 och "återställer" konfigurationen.

Kontrollera brandväggsregler.
Kontrollera loggning på serversidan: c:\program files\updateservices\logfiles\SoftwareDistribution
Kör sfc /scannow för att kontrollera om filen är skadad.

WSUSUtil.exe
  • wsusutil.exe reset
    • Kontrollerar att varje rad med metadata för uppdatering i databasen har motsvarande uppdateringsfiler lagrade i filsystemet. Om uppdateringsfiler saknas eller har skadats hämtar WSUS uppdateringsfilerna på nytt.
  • wsusutil.exe checkhealth
    • Kontrollera programhändelseloggen för poster med källan ”Windows Server Update Services”
  • wsusutil.exe usecustomwebsite
    • Ändar den port som WSUS använder. ”Återställer” även porten under ändringen.
  • IIS

    Kontrollera om det finns http-anslutningsfel i c:\windows\system32\logfiles\httperr\

    Kontrollera IP-bindningar.
    Kontrollera att programpoolen körs.

    Kontrollera IIS-loggar för anslutningsfel c:\inetpub\logs\logfiles
    Den förvalda IIS-installationen från WSUS-installeraren installerar dock inte loggningskomponenten.
    Du måste aktivera detta under Manage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging

    Och där har du det. Om den här guiden inte löste problemet har du förhoppningsvis åtminstone upptäckt den felande komponenten och har en bättre idé om var du ska fokusera dina Google-sökningar.

    Lämna ett svar

    Din e-postadress kommer inte publiceras.