WSUS Troubleshooting Steps

Questa è la guida che uso quando risolvo un’installazione WSUS non funzionante. Questo può manifestarsi come un errore della console del server, il sempre popolare “non sta segnalando”, o attraverso il registro eventi. Ti guiderò attraverso i componenti di WSUS e come controllare e assicurarsi che ognuno di essi funzioni correttamente.

Prima una nota su cosa è disponibile sulla tua piattaforma.
Se sei su Windows 7/8/Server 2008R2/2012R2 allora wuauclt funziona per te.
L’unico vero comando che devi conoscere è wuauclt /resetauthorization /detectnow.
wauauclt /reportnow non fa quello che pensi e non è molto utile.

Se sei su Windows 10/Server 2016 allora wuauclt è stato depennato e hai UsoClient.
usoclient.exe startscan per rilevare le patch mancanti
usoclient.exe refreshsettings per aggiornare le impostazioni se sono state fatte delle modifiche
usoclient.exe startdownload per scaricare le patch
usoclient.exe startinstall per installare le patch

Hai anche la possibilità di usare Powershell per avviare una richiesta di scansione.

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

Parlando di Powershell, Microsoft mette a disposizione un certo numero di cmdlets per gestire WSUS Server.Per vedere se questi sono disponibili per te esegui

Get-Command -Module UpdateServices

Questi cmdlets sono principalmente orientati alla distribuzione e gestione del server, patch e computer, non alla risoluzione dei problemi.

Sul client c’è un modulo WindowsUpdate ma la sua unica funzione è Get-WindowsUpdateLog che è usato per generare un file leggibile WindowsUpdate.log in Windows 10.

Esiste un modulo PS di terze parti per gestire Windows Update sul client.

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 ha la possibilità di utilizzare un database interno WID (Windows Internal DB) o SQL. Presumo che sia installato con WID nel percorso predefinito di C:\Windows\WID\.
Gli errori relativi al database (diversi dalla frammentazione) di solito si verificano al momento dell’installazione, spesso durante la sequenza di attività post-installazione.
Sebbene sia possibile connettersi al WID e abbandonare il SUSDB, gli errori in questa fase sono solitamente risolti meglio attraverso una completa disinstallazione e reinstallazione.
Per motivi di riferimento dirò che puoi usare SQLCMD o SQL Mgmt Studio per connetterti al DB.
La stringa di connessione è np:\.\pipe\MICROSOFT##WID\tsql\query

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

Disinstallazione

Disinstallare usando Server Manager.
Assicurati che la cartella dei contenuti WSUS sia sparita così come il sito IIS WSUS Administration.
La disinstallazione di WSUS non sempre rimuove il WID. Rimuovilo in Powershell con Uninstall-WindowsFeature -Name windows-internal-database
Riavvia e cancella i file c:\windows\WID\SUSDB.mdf e SUSDB_log.ldf.

Installazione

Insieme alla selezione del ruolo WSUS, Windows installa ASP.NET 4.6, RSAT Tools, IIS, e il servizio di attivazione di Windows Process.

Installa da un prompt amministrativo di Powershell

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

Poi, prima di lanciare la GUI, esegui:

Controlla il client

Ci sono parecchie cause potenziali per un client che non riceve aggiornamenti. Passerò attraverso una serie di passi per la risoluzione dei problemi e alla fine darò due script per “resettare” il client se nient’altro funziona.

Controlla lo spazio libero sul disco rigido.

Controlla il log di Windowsupdate.
Su Windows 10 apri un prompt amministrativo di powershell ed esegui Get-Windowsupdatelog. Il registro sarà sul desktop. Aspetta che il comando finisca di funzionare.
Su Windows 7 controlla C:\Windows\WindowsUpdate.log
Questo dovrebbe indicare se il problema è basato sul client o un problema di comunicazione con un endpoint remoto.

Il primo passo più semplice nella risoluzione dei problemi del client è quello di eseguire il Windows Update Troubleshooter.
Su Windows 10 vai al sito Microsoft iFixIt for WSUS.
Questo ti chiederà di scaricare il Windows Update Troubleshooter (in formato cab). Salvatelo ed eseguitelo.
Scelta di Windows 7 in questa pagina ti chiede di fare clic con il tasto destro del mouse su Network (nella barra delle applicazioni) e “Troubleshoot problems”. Probabilmente puoi saltare questo passaggio.

Su Windows 10 prova un controllo degli aggiornamenti online.

Controlla per assicurarti che il servizio sia in esecuzione.
Get-Service -Name wuauserv

Poi controlla e assicurati che il client stia ricevendo le impostazioni WSUS da Group Policy.
Esegui gpresult /scope computer per vedere se la tua policy delle impostazioni WSUS viene applicata alla macchina.
Interroga il registro del client per le impostazioni WSUS con Get-ItemProperty HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate

Telnet può essere usato per controllare i problemi di connettività della porta. Se si tenta una connessione telnet a una porta aperta e accessibile, telnet aprirà una nuova finestra di comando vuota. Se la porta è inaccessibile il comando semplicemente fallisce. Prova a stabilire una connessione al server WSUS e alla porta. Se la connessione fallisce controlla le impostazioni del firewall.
telnet wsus.server.com 8530

Utilizziamo Powershell per testare la connettività.
Test-NetConnection -ComputerName <WSUS_Server> -Port 8530 -InformationLevel Detailed

Non dimenticare il passo ovvio di controllare il registro eventi.
Log degli eventi dell’applicazione così come i log delle applicazioni e dei servizi > Microsoft > Windows > WindowsUpdateClient

A volte gli antivirus o altri agenti di sicurezza degli endpoint possono interferire con le comunicazioni di rete. Considera di disabilitarli o disinstallarli per i test.

Esegui sfc /scannow da un prompt di comando amministrativo per controllare la corruzione dei file che può influenzare il client.

Se hai sia client funzionanti che non funzionanti in WSUS controlla c:\program files\update services\WebServices\ClientWebServices per un file web.config e confronta un file funzionante con uno non funzionante per le differenze.

Se questo client proviene da un’immagine OS e Sysprep non è stato eseguito allora il problema potrebbe essere che più client stanno usando la stessa chiave SUSClientID.
Controlla HKLM\Software\Microsoft\Windows\CurrentVersion\WIndowsUpdate ed elimina l’attuale SUSClientID.
Esegui wuauclt /resetauthorization /detectnow da un prompt dei comandi elevato.

La sequenza seguente cancellerà la cache locale del client di Windows Update
La sequenza seguente registrerà nuovamente una macchina con il server WSUS:

Controlla il server

Controlla lo spazio libero sul disco rigido, per il volume di avvio e il volume del repository.

Controlla il servizio Windows Update
Get-Service -name WsusService

Controlla il servizio IIS
Get-Service -name W3SVC

Il server è in ascolto? Controlla le porte aperte.
netstat -an | findstr 853*

Puoi navigare verso
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. Questo cambierà la porta che WSUS usa da 8530 a 80, quindi assicurati che non ci sia nulla in esecuzione sulla porta 80.
Ora esegui wsusutil usecustomwebsite true seguito poi da iisreset /restart. Questo cambia la porta di nuovo a 8530 e "resetta" la configurazione.

Controlla le regole del firewall.
Controlla i log lato server: c:\program files\updateservices\logfiles\SoftwareDistribution
Esegui sfc /scannow per controllare la corruzione dei file.

WSUSUtil.exe
  • wsusutil.exe reset
    • Controlla che ogni riga di metadati di aggiornamento nel database abbia i file di aggiornamento corrispondenti memorizzati nel file system. Se i file di aggiornamento mancano o sono stati corrotti, WSUS scarica nuovamente i file di aggiornamento.
  • wsusutil.exe checkhealth
    • Controlla il registro eventi dell’applicazione per voci con fonte “Windows Server Update Services”
  • wsusutil.exe usecustomwebsite
    • Cambia la porta utilizzata da WSUS. Inoltre “resetta” la porta durante il cambiamento.

IIS

Controlla gli errori di connessione http in c:\windows\system32\logfiles\httperr\

Controlla i binding IP.
Controlla che il pool di applicazioni sia in esecuzione.

Controlla i log di IIS per gli errori di connessione c:\inetpub\logs\logfiles
L’installazione predefinita di IIS da parte del programma di installazione di WSUS non installa il componente di logging.
Devi abilitarlo sotto Manage Computer > Roles > Web Server > Web Server > Health & Diag > HTTP Logging

E ecco fatto. Se seguire questa guida non ha risolto il problema, si spera che tu abbia almeno trovato il componente malfunzionante e che tu abbia un’idea migliore su dove concentrare le tue ricerche su Google.

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.