Níže je uveden návod, který používám při řešení problémů s nefunkční instalací WSUS. To se může projevit jako chyba konzoly serveru, stále oblíbenější „prostě se to nehlásí“ nebo prostřednictvím protokolu událostí. Projdu s vámi jednotlivé součásti WSUS a ukážu vám, jak každou z nich zkontrolovat a ujistit se, že funguje správně.
Nejprve poznámka k tomu, co je k dispozici na vaší platformě.
Pokud používáte Windows 7/8/Server 2008R2/2012R2, pak pro vás funguje wuauclt
.
Jediný skutečný příkaz, který potřebujete znát, je wuauclt /resetauthorization /detectnow
.wauauclt /reportnow
nedělá to, co si myslíte, a není příliš užitečný.
Pokud máte Windows 10/Server 2016, pak byl wuauclt vyřazen a máte k dispozici UsoClient
.usoclient.exe startscan
pro zjištění chybějících záplatusoclient.exe refreshsettings
pro obnovení nastavení, pokud byly provedeny nějaké změnyusoclient.exe startdownload
pro stažení záplatusoclient.exe startinstall
pro instalaci záplat
Máte také možnost použít Powershell pro zahájení požadavku na kontrolu.
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
Když už mluvíme o prostředí Powershell, společnost Microsoft zpřístupňuje řadu rutin pro správu serveru WSUS. chcete-li zjistit, zda jsou vám k dispozici, spusťte
Get-Command -Module UpdateServices
Tyto rutiny jsou primárně zaměřeny na nasazení a správu serveru, záplat a počítačů, nikoli na řešení problémů.
Na klientovi existuje modul WindowsUpdate, ale jeho jedinou funkcí je Get-WindowsUpdateLog, který slouží k vygenerování čitelného souboru WindowsUpdate.log v systému Windows 10.
Pro správu služby Windows Update na klientovi existuje modul PS třetí strany.
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
Databáze
WSUS má možnost využívat interní databázi WID (Windows Internal DB) nebo databázi SQL. Předpokládám, že je nainstalován s WID ve výchozí cestě C:\Windows\WID\
.
Chyby související s databází (kromě fragmentace) se obvykle vyskytují v době instalace, často během posloupnosti úloh po instalaci.
Je sice možné připojit se k WID a upustit od SUSDB, ale chyby v této fázi je obvykle nejlépe odstranit úplným odinstalováním a novou instalací.
Pro referenční účely uvedu, že k připojení k DB můžete použít buď SQLCMD, nebo SQL Mgmt Studio.
Řetězec připojení je np:\.\pipe\MICROSOFT##WID\tsql\query
select name from sys.sysdatabasesdrop table susdbselect name from sys.sysdatabases
Odinstalace
Odinstalujte pomocí Správce serveru.
Ujistěte se, že zmizela složka s obsahem WSUS i web správy IIS WSUS.
Při odinstalaci služby WSUS nedojde vždy k odstranění WID. Odstraňte jej v prostředí Powershell pomocí Uninstall-WindowsFeature -Name windows-internal-database
Znovu spusťte počítač a odstraňte soubory c:\windows\WID\SUSDB.mdf
a SUSDB_log.ldf
.
Instalace
Současně s výběrem role WSUS systém Windows nainstaluje ASP.NET 4.6, nástroje RSAT, IIS a službu aktivace procesů systému Windows.
Instalace z administrátorského příkazu prostředí Powershell
Install-WindowsFeature -Name Updateservices,UpdateServices-WidDB,UpdateServices-services -IncludeManagementTools
Poté před spuštěním grafického uživatelského rozhraní spusťte:
Kontrola klienta
Příčin, proč klient nedostává aktualizace, je poměrně dost. Projdu celou řadu kroků řešení problémů a na závěr uvedu dva skripty pro „resetování“ klienta, pokud nic jiného nepomůže.
Zkontrolujte volné místo na pevném disku.
Zkontrolujte protokol Windowsupdate.
V systému Windows 10 otevřete výzvu prostředí PowerShell pro správu a spusťte Get-Windowsupdatelog
. Protokol bude na ploše. Počkejte, až se příkaz dokončí.
V systému Windows 7 zkontrolujte C:\Windows\WindowsUpdate.log
To by mělo ukázat, zda je problém způsoben klientem nebo problémem s komunikací se vzdáleným koncovým bodem.
Nejjednodušším prvním krokem při řešení problémů s klientem je spuštění nástroje Windows Update Troubleshooter.
V systému Windows 10 přejděte na web Microsoft iFixIt for WSUS.
Tam budete vyzváni ke stažení nástroje Windows Update Troubleshooter (ve formátu cab). Uložte jej a spusťte.
Výběr systému Windows 7 na této stránce vás vyzve, abyste klikli pravým tlačítkem myši na položku Síť (v systémové liště) a „Řešení problémů“. Tento krok můžete pravděpodobně přeskočit.
V systému Windows 10 zkuste kontrolu aktualizací online.
Zkontrolujte, zda je služba spuštěna.Get-Service -Name wuauserv
Dále zkontrolujte a ujistěte se, že klient přijímá nastavení WSUS ze zásad skupiny.
Spusťte gpresult /scope computer
a zjistěte, zda se na počítač aplikují zásady nastavení WSUS.
Zjistěte v registru klienta nastavení WSUS pomocí Get-ItemProperty HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate
K ověření problémů s připojením k portu lze použít Telnet. Pokud se pokusíte o telnetové připojení k otevřenému a přístupnému portu, telnet otevře nové prázdné příkazové okno. Pokud je port nedostupný, příkaz jednoduše selže. Zkuste navázat spojení se serverem WSUS a portem. Pokud se připojení nezdaří, zkontrolujte nastavení brány firewall.telnet wsus.server.com 8530
Pomocí prostředí Powershell otestujte připojení.Test-NetConnection -ComputerName <WSUS_Server> -Port 8530 -InformationLevel Detailed
Nezapomeňte na samozřejmý krok, kterým je kontrola protokolu událostí.
Protokol událostí aplikace i protokoly aplikací a služeb > Microsoft > Windows > WindowsUpdateClient
Někdy může antivirový program nebo jiní agenti zabezpečení koncových bodů narušit síťovou komunikaci. Zvažte jejich zakázání nebo odinstalování pro účely testování.
Spusťte sfc /scannow
z příkazového řádku správce a zkontrolujte, zda nedošlo k poškození souborů, které může ovlivnit klienta.
Pokud máte ve WSUS funkční i nefunkční klienty, zkontrolujte c:\program files\update services\WebServices\ClientWebServices
soubor web.config
a porovnejte funkční soubor s nefunkčním souborem, zda se liší.
Pokud tento klient pochází z bitové kopie operačního systému a nebyl spuštěn Sysprep, může být problém v tom, že více klientů používá stejný klíč SUSClientID.
Zkontrolujte HKLM\Software\Microsoft\Windows\CurrentVersion\WIndowsUpdate
a odstraňte aktuální SUSClientID
.
Spustit wuauclt /resetauthorization /detectnow
ze zvýšeného příkazového řádku.
Následující sekvence vymaže místní mezipaměť klienta Windows Update
Následující sekvence znovu zaregistruje počítač na serveru WSUS:
Zkontrolujte server
Zkontrolujte volné místo na pevném disku, pro spouštěcí svazek a svazek úložiště.
Zkontrolujte službu Windows UpdateGet-Service -name WsusService
Zkontrolujte službu IISGet-Service -name W3SVC
Poslouchá server? Zkontrolujte otevřené porty.netstat -an | findstr 853*
Můžete procházet na
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
. Tím se změní port, který používá WSUS, z 8530 na 80, takže se ujistěte, že na portu 80 nic neběží.
Nyní spusťte wsusutil usecustomwebsite true
a poté iisreset /restart
. Tím se port změní zpět na 8530 a "resetuje" se konfigurace.
Zkontrolujte pravidla brány firewall.
Zkontrolujte protokolování na straně serveru: c:\program files\updateservices\logfiles\SoftwareDistribution
Spustí sfc /scannow
pro kontrolu poškození souborů.
WSUSUtil.exe
-
wsusutil.exe reset
- Kontroluje, zda má každý řádek metadat aktualizací v databázi odpovídající soubory aktualizací uložené v systému souborů. Pokud soubory aktualizací chybí nebo byly poškozeny, služba WSUS stáhne soubory aktualizací znovu.
-
wsusutil.exe checkhealth
- Zkontroluje protokol událostí aplikace na záznamy se zdrojem „Windows Server Update Services“
-
wsusutil.exe usecustomwebsite
- Změní port, který služba WSUS používá. Během změny také „resetuje“ port.
IIS
Kontrola chyb http připojení v c:\windows\system32\logfiles\httperr\
Kontrola vazeb IP.
Kontrola, zda je spuštěn fond aplikací.
Zkontrolujte protokoly IIS na chyby připojení c:\inetpub\logs\logfiles
Ve výchozí instalaci IIS instalačním programem WSUS se však komponenta protokolování neinstaluje.
Tuto komponentu musíte povolit v položce Manage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging
A je to. Pokud postup podle tohoto návodu problém nevyřešil, doufejme, že jste alespoň narazili na nefunkční komponentu a máte lepší představu, na co se při hledání v Googlu zaměřit.