Nedenfor er den vejledning, jeg bruger, når jeg foretager fejlfinding på en ødelagt WSUS-installation. Dette kan manifestere sig som en fejl i serverkonsollen, den altid populære “den rapporterer bare ikke ind” eller via hændelsesloggen. Jeg vil gennemgå komponenterne i WSUS, og hvordan du kan kontrollere og sikre dig, at hver enkelt fungerer korrekt.
Først en note om, hvad der er tilgængeligt på din platform.
Hvis du er på Windows 7/8/Server 2008R2/2012R2, så virker wuauclt
for dig.
Den eneste rigtige kommando, du skal kende, er wuauclt /resetauthorization /detectnow
.wauauclt /reportnow
gør ikke det, du tror, og er ikke særlig nyttig.
Hvis du er på Windows 10/Server 2016, så er wuauclt blevet depriceret, og du har UsoClient
.usoclient.exe startscan
til at opdage manglende patchesusoclient.exe refreshsettings
til at opdatere indstillingerne, hvis der er foretaget ændringerusoclient.exe startdownload
til at downloade patchesusoclient.exe startinstall
til at installere patches
Du har også mulighed for at bruge Powershell til at starte en scanningsanmodning.
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
Såvidt angår Powershell, stiller Microsoft en række cmdlets til rådighed til administration af WSUS Server, og for at se, om disse er tilgængelige for dig, skal du køre
Get-Command -Module UpdateServices
Disse cmdlets er primært rettet mod implementering og administration af serveren, patches og computere, ikke fejlfinding.
På klienten findes der et WindowsUpdate-modul, men dets eneste funktion er Get-WindowsUpdateLog, som bruges til at generere en læsbar WindowsUpdate.log-fil i Windows 10.
Der findes et PS-modul fra en tredjepart til administration af 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
Database
WSUS har mulighed for at udnytte en intern WID (Windows Internal DB) eller en SQL-database. Jeg går ud fra, at den er installeret med WID på standardstien C:\Windows\WID\
.
Database-relaterede fejl (bortset fra fragmentering) opstår normalt på installationstidspunktet, ofte i forbindelse med opgavesekvensen efter installationen.
Selv om det er muligt at oprette forbindelse til WID og droppe SUSDB’en, er det normalt bedst at rette fejl på dette stadium ved en fuldstændig afinstallation og geninstallation.
Til referenceformål vil jeg oplyse, at du kan bruge enten SQLCMD eller SQL Mgmt Studio til at oprette forbindelse til DB’en.
Forbindelsesstrengen er np:\.\pipe\MICROSOFT##WID\tsql\query
select name from sys.sysdatabasesdrop table susdbselect name from sys.sysdatabases
Afinstallation
Afinstaller ved hjælp af Server Manager.
Sørg for, at WSUS-indholdsmappen er væk, samt IIS WSUS Administration site.
Afinstallation af WSUS fjerner ikke altid WID’en. Fjern den i Powershell med Uninstall-WindowsFeature -Name windows-internal-database
Reboot og slet c:\windows\WID\SUSDB.mdf
og SUSDB_log.ldf
filer.
Installation
Sammen med valg af WSUS-rollen installerer Windows ASP.NET 4.6, RSAT Tools, IIS og Windows Process activation service.
Installeres fra en administrativ Powershell-prompt
Install-WindowsFeature -Name Updateservices,UpdateServices-WidDB,UpdateServices-services -IncludeManagementTools
Før derefter, før du starter GUI’en, skal du køre:
Tjek klienten
Der er en hel del potentielle årsager til, at en klient ikke modtager opdateringer. Jeg gennemgår en række fejlfindingstrin og giver til sidst to scripts til at “nulstille” klienten, hvis intet andet virker.
Kontroller ledig plads på harddisken.
Kontroller Windowsupdate-loggen.
På Windows 10 åbner du en administrativ powershell-prompt og kører Get-Windowsupdatelog
. Loggen vil blive vist på skrivebordet. Vent, til kommandoen er færdig med at køre.
På Windows 7 kontrollerer du C:\Windows\WindowsUpdate.log
Dette bør angive, om problemet er klientbaseret eller et problem med at kommunikere til et fjernslutpunkt.
Det enkleste første trin i fejlfinding af klienten er at køre Windows Update Troubleshooter.
På Windows 10 skal du gå til Microsoft iFixIt for WSUS-webstedet.
Det vil bede dig om at downloade Windows Update Troubleshooter (i cab-filformat). Gem denne, og kør den.
Hvis du vælger Windows 7 på denne side, bliver du bedt om at højreklikke på Netværk (i din systembakke) og “Fejlfinding af problemer”. Du kan sandsynligvis springe dette trin over.
På Windows 10 prøv en onlineopdateringskontrol.
Kontroller, at tjenesten kører.Get-Service -Name wuauserv
Kontroller derefter, og sørg for, at klienten modtager WSUS-indstillinger fra gruppepolitik.
Kør gpresult /scope computer
for at se, om din politik for WSUS-indstillinger anvendes på maskinen.
Søg i klientens registreringsdatabase efter WSUS-indstillinger med Get-ItemProperty HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate
Telnet kan bruges til at kontrollere problemer med portforbindelse. Hvis du forsøger at oprette en telnetforbindelse til en åben og tilgængelig port, vil telnet åbne et nyt tomt kommandovindue. Hvis der ikke er adgang til porten, vil kommandoen simpelthen mislykkes. Prøv at etablere en forbindelse til WSUS-serveren og -porten. Hvis forbindelsen mislykkes, skal du kontrollere firewallindstillingerne.telnet wsus.server.com 8530
Lad os bruge Powershell til at teste forbindelsen.Test-NetConnection -ComputerName <WSUS_Server> -Port 8530 -InformationLevel Detailed
Glem ikke det oplagte trin, nemlig at kontrollere hændelsesloggen.
Applikationshændelseslog samt app- og tjenesteprotokoller > Microsoft > Windows > Windows > WindowsUpdateClient
Sommetider kan anti-virus eller andre sikkerhedsagenter for slutpunktet forstyrre netværkskommunikationen. Overvej at deaktivere eller afinstallere disse til test.
Kør sfc /scannow
fra en administrativ kommandoprompt for at kontrollere, om der er filkorruption, der kan påvirke klienten.
Hvis du har både fungerende og ikke-fungerende klienter i WSUS, skal du kontrollere c:\program files\update services\WebServices\ClientWebServices
for en web.config
-fil og sammenligne en fungerende fil med en ikke-fungerende fil for forskelle.
Hvis denne klient kommer fra et OS-image, og Sysprep ikke blev kørt, kan problemet være, at flere klienter bruger den samme SUSClientID-nøgle.
Kontroller HKLM\Software\Microsoft\Windows\CurrentVersion\WIndowsUpdate
og slet den aktuelle SUSClientID
.
Kør wuauclt /resetauthorization /detectnow
fra en forhøjet kommandoprompt.
Sekvensen nedenfor rydder den lokale cache for Windows Update-klienten
Sekvensen nedenfor genregistrerer en maskine med WSUS-serveren:
Kontroller serveren
Kontroller ledig plads på harddisken, for boot-volumen og repository-volumen.
Kontroller Windows Update-tjenestenGet-Service -name WsusService
Kontroller IIS-tjenestenGet-Service -name W3SVC
Lytter serveren? Kontroller åbne porte.netstat -an | findstr 853*
Kan du browse til
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
. Dette vil ændre den port, som WSUS bruger, fra 8530 til 80, så sørg for, at der ikke kører noget på port 80.
Kør nu wsusutil usecustomwebsite true
efterfulgt derefter af iisreset /restart
. Dette ændrer porten tilbage til 8530 og "nulstiller" konfigurationen.
Kontroller firewallreglerne.
Kontroller logning på serversiden: c:\program files\updateservices\logfiles\SoftwareDistribution
Kør sfc /scannow
for at kontrollere for filkorruption.
WSUSUtil.exe
-
wsusutil.exe reset
-
- Kontrollerer, at hver række med metadata om opdateringer i databasen har tilsvarende opdateringsfiler gemt i filsystemet. Hvis opdateringsfiler mangler eller er blevet beskadiget, henter WSUS opdateringsfilerne igen.
-
wsusutil.exe checkhealth
- Kontroller Programhændelseslog for poster med kilde “Windows Server Update Services”
-
-
wsusutil.exe usecustomwebsite
- Ændrer den port, som WSUS bruger. “Nulstiller” også porten under ændringen.
IIS
Kontroller for http-forbindelsesfejl i c:\windows\system32\logfiles\httperr\
Kontroller IP-bindinger.
Kontroller, om programpuljen kører.
Kontroller IIS-logfiler for forbindelsesfejl c:\inetpub\logs\logfiles
Den standard IIS-installation, der foretages af WSUS-installatøren, installerer dog ikke loggingkomponenten.
Du skal aktivere dette under Manage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging
Og der har du det. Hvis det ikke lykkedes at løse problemet ved at følge denne vejledning, er du forhåbentlig i det mindste stødt på den dårligt fungerende komponent og har en bedre idé om, hvor du skal fokusere dine Google-søgninger.