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 mancantiusoclient.exe refreshsettings
per aggiornare le impostazioni se sono state fatte delle modificheusoclient.exe startdownload
per scaricare le patchusoclient.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 UpdateGet-Service -name WsusService
Controlla il servizio IISGet-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.
.