Il Patch management comporta molti rischi. Software incompatibili e aggiornamenti in conflitto possono portare a fallimenti delle patch, con conseguenti violazioni della conformità e un aumento del rischio di violazioni della sicurezza.
Pensa a questo: non distribuire le patch sulle tue applicazioni è come lasciare aperta la porta di casa.
Detto questo, il tuo team dovrebbe segnalare se una patch è fallita e perché. Puoi utilizzare vari strumenti di terze parti per visualizzare le tendenze, ma queste applicazioni possono essere troppo costose o avere un campo di applicazione troppo ampio per identificare le cause specifiche.
Per garantire che nessuna distribuzione fallita passi inosservata, è importante creare un processo di segnalazione del fallimento delle patch standardizzato che non si basi su dashboard di terze parti.
In questa guida ti mostreremo come diagnosticare e segnalare il fallimento delle patch utilizzando gli strumenti nativi del sistema operativo.
Come diagnosticare e segnalare il fallimento delle patch utilizzando gli strumenti nativi di Windows
Esistono vari modi per diagnosticare e segnalare il fallimento delle patch utilizzando gli strumenti nativi di Windows, ma prima di iniziare assicurati di avere i seguenti requisiti:
📌 Prerequisiti:
- Accesso amministrativo ai dispositivi interessati
- Familiarità con PowerShell, Event Viewer e ispezione del registro di sistema
- Registri locali o accessibili da RMM
- Conoscenza dei codici di errore di Microsoft Update e dei comuni programmi di installazione di aggiornamenti di terze parti
- Pianificazione dell’esecuzione dello script tramite Utilità di pianificazione o criterio NinjaOne (opzionale)
📌 Strategie di implementazione consigliate:
Fase 1: Definire le categorie di cause comuni
📌 Caso d’uso: Crea un processo standardizzato per identificare le cause potenziali dei fallimenti delle patch su centinaia di endpoint.
Raggruppa tutti i fallimenti delle patch segnalati in base alle cause principali comuni, ad esempio:
| Causa principale | Indicatori |
| Problemi di spazio su disco | ID evento 51, 11; C:\ basso spazio libero |
| Conflitti di servizio | WUAUSERV, MSIEXEC si blocca o disabilita i servizi |
| Riavvio in corso | Flag di registro o ID evento 1074 |
| Errori di dipendenza | Mancano i runtime .NET e VC++ |
| Problemi di timeout o di blocco | ID evento 20, ovvero “L’installatore è già in esecuzione” |
| Rete/download | WSUS/unreachable, errori di timeout, errori del proxy |
La creazione di queste categorie contribuirà a rendere coerenti le procedure di rimedio e di segnalazione.
Fase 2: Scegliere un metodo per identificare, registrare e segnalare i fallimenti delle patch
Successivamente, dovrai scegliere un metodo per identificare, registrare e segnalare i fallimenti delle patch. Puoi scegliere uno dei metodi elencati di seguito o una qualsiasi combinazione, a seconda delle tue esigenze e dei tuoi biettivi specifici.
Metodo 1: Raccogliere i registri dei fallimenti con PowerShell e le query del Registro eventi
📌 Caso d’uso: Risolvi i problemi di patch su singoli computer estraendo i registri e i flag di sistema pertinenti utilizzando PowerShell.
- Aggiornamenti della query non riusciti (ID evento Windows 20)
Get-WinEvent -FilterHashtable @{LogName='System'; ID=20} |Where-Object { $_.Message -like "*failed*" } |Select TimeCreated, Message | Export-Csv "C:\Logs\FailedPatches.csv" -NoTypeInformation
⚠️Important: Il percorso deve esistere perché questo metodo funzioni. In caso contrario, apparirà un messaggio di errore.
- Verifica i requisiti di riavvio
$rebootRequired = Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
Estendi lo script per visualizzare un messaggio quando è necessario un riavvio
$rebootRequired = Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
if ($rebootRequired) {
Write-Host "System reboot is required."
} else {
Write-Host "No reboot required."
}
- Ottieni gli ultimi 5 aggiornamenti di sicurezza non riusciti
Get-HotFix | Where-Object {$_.Description -eq "Security Update"} |Sort-Object InstalledOn | Select-Object -Last 5
- Per richiedere un elenco degli ultimi 5 aggiornamenti critici e hotfix non riusciti
Get-WmiObject -Namespace "root\cimv2" -Class "Win32_ReliabilityRecords" |Where-Object {$_.SourceName -eq "Microsoft-Windows-WindowsUpdateClient" -and $_.Message -like "*failed*" -and ($_.ProductName -like "*Security*" -or $_.ProductName -like "*Critical*" -or $_.ProductName -like "*Hotfix*")} |Select-Object TimeGenerated, Message, ProductName |Sort-Object TimeGenerated -Descending |Select-Object -First 5
Metodo 2: Utilizzare CMD per estrarre i log e gli errori di aggiornamento
📌 Caso d’uso: Esegui una diagnostica rapida su più endpoint controllando i registri di Windows Update.
- Controllare i registri di Windows Update (Windows 10+)
Get-WindowsUpdateLog
Puoi verificare l’output di questo comando su: C:\Users\<YourUsername>\Desktop\WindowsUpdate.log
- Scansione degli errori di aggiornamento
findstr /C: "error"
C:\Users\<YourUsername>\Desktop\WindowsUpdate.log
- Verificare che i servizi richiesti siano in esecuzione
sc query wuauserv
sc query bits
💡Nota: Il nome del servizio wuauserv si riferisce a Windows Update, mentre bits si riferisce al Background Intelligence Transfer Service. Trasferisce i file con la larghezza di banda di rete inattiva e consente a Windows Update di scaricare gli aggiornamenti in modo efficiente.
- Elenco dei file in attesa di ridenominazione (requisito comune per il riavvio)
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations
Se il valore PendingFileRenameOperations esiste o contiene dati, significa che uno o più file sono in sospeso e che è necessario un riavvio per completarli.
Metodo 3: Memorizzare i metadati delle cause principali nel registro per la creazione di report
📌 Caso d’uso: Automatizza la segnalazione del fallimento delle patch scrivendo metadati categorizzati nel registro di Windows che lo strumento RMM può raccogliere.
- In caso di errore, scrivi i valori delle cause principali categorizzate nel registro per il polling di RMM
New-Item -Path "HKLM:\SOFTWARE\Org\PatchAudit" -Force
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchAudit" -Name "LastPatchError" -Value "DiskFull"
Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchAudit" -Name "AuditDate" -Value (Get-Date).ToString("u")
Quindi, registra o esporta i dati di audit in un file per la creazione di rapporti:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\PatchAudit" | Out-File "C:\Logs\PatchAudit.txt"
💡Nota: “DiskFull” è solo un valore di esempio. Dovrai sostituirlo con la causa principale effettivamente riscontrata (ad esempio, “NetworkTimeout”, “PermissionDenied” e così via)
- Controllo CMD
reg query HKLM\SOFTWARE\Org\PatchAudit
⚠️Importante: Il comando reg query HKLM\SOFTWARE\Org\PatchAudit funziona solo se i passaggi sopra descritti hanno avuto successo.
Metodo 4: Automatizzare la segnalazione dei fallimenti con attività programmate o strumenti RMM
📌 Caso d’uso: Crea un’attività pianificata per analizzare il fallimento delle patch, etichettare le cause principali e attivare avvisi per gli errori ricorrenti.
- Creare un’attività pianificata per la scansione e l’etichettatura
schtasks /create /tn "PatchFailureScan" /tr "powershell.exe -File C:\Scripts\AuditPatchFailures.ps1" /sc weekly /ru SYSTEM
AuditPatchFailure.s1 è uno script PowerShell che raccoglie tutti gli eventi delle patch non fallite, ne analizza le cause principali e memorizza i metadati categorizzati nel Registro di Windows in HKLM:\SOFTWARE\Org\PatchAudit.
In alternativa, puoi utilizzare NinjaOne per:
- Raccogliere automaticamente l’output in un campo personalizzato.
- Creare avvisi per patch non riuscite, riavvii in sospeso e rilevamento di cause specifiche.
- Apertura automatica di ticket per errori ricorrenti.
NinjaOne semplifica il processo di patching visualizzando tutte le patch installate, mancanti, in sospeso o non riuscite senza scripting manuale o attività pianificate. Centralizza il patch management attraverso un’unica piattaforma, facilitando il monitoraggio e la risoluzione dei problemi di patch.
Per maggiori dettagli, leggi come NinjaOne può migliorare la segnalazione e l’analisi degl fallimento delle patch.
⚠️ Importante: È necessario creare lo script AuditPatchFailure.s1 prima di procedere con questo metodo.
Metodo 5: Utilizzate i Criteri di gruppo per prevenire gli scenari di fallimenti più comuni
📌 Caso d’uso: Impedisci la verifica dei fallimenti delle patch più comuni applicando le configurazioni a livello di sistema su più endpoint tramite Criteri di gruppo.
- Forzare la registrazione di WUA e MSI
# Enable WUA Logging
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace" -Name "LogLevel" -Value 5 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Trace" -Name "LogFile" -Value "%windir%\WindowsUpdate.log" -Type String
# Enable MSI Logging
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Installer" -Name "Logging" -Value "voicewarmup" -Type String
Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows\Installer" -Name "Debug" -Value 7 -Type DWord
Write-Output "WUA and MSI logging have been enabled."
- Utilizzare i GPO per impedire il rinvio del riavvio
Configurazione del computer > Windows Update > Nessun riavvio automatico con gli utenti connessi per le installazioni automatiche programmate degli aggiornamenti.
Per garantire che l’attività venga eseguita anche se il sistema è in sospensione durante l’installazione pianificata, dovrai:
- Abilita l’opzione Wake-up
- Nell’Utilità di pianificazione, vai alla scheda Proprietà → Condizioni dell’attività
- Abilita “Sveglia il computer per eseguire questa attività”
- Abilitazione dei timer di risveglio
- Accedi al Pannello di controllo → Opzioni di alimentazione → Modifica impostazioni piano → Impostazioni avanzate di alimentazione
- Sotto ‘Sospensione’, seleziona Timer di risveglio e impostalo su Attivo
- Configura le impostazioni dall’Utilità di pianificazione
- Apri l’Utilità di pianificazione delle attività e accedi a Proprietà
- Nella scheda Impostazioni, seleziona “Esegui l’attività il prima possibile dopo aver mancato un avvio programmato” per garantire che l’attività venga eseguita anche se il sistema era sospeso o spento durante l’ora di sveglia programmata.
⚠️ Cose da tenere d’occhio
Tieni a mente queste insidie quando seguite la nostra guida:
| Rischi | Potenziali conseguenze | Inversione di tendenza |
| I registri degli eventi non ne registrano l’aggiornamento. | I fallimenti delle patch non vengono rilevati; la diagnostica è incompleta. | Controllare le impostazioni del registro di audit o il provider WMI. |
| Il rilevamento del riavvio non riesce a causa di un percorso o di autorizzazioni non corrette del registro di sistema. | Le patch falliranno ripetutamente; il sistema sarà ancora vulnerabile. | Verifica il percorso del registro e assicurati di eseguire lo script con i diritti di amministratore. |
| Falsi avvisi di spazio su disco dovuti a controlli obsoleti o errati. | Errata diagnosi delle cause principali | Usa Get-PSDrive per convalidare lo spazio effettivo su disco prima di etichettarlo come “DiskFull”. |
| Lo script non si attiva a causa di problemi di programmazione o di sintassi. | L’automazione fallirà silenziosamente; non verranno generati avvisi o registri. | Utilizza -Verbose in PowerShell e controlla la cronologia dell’Utilità di pianificazione o i registri RMM. |
Amplia il kit di strumenti: Ulteriori suggerimenti per il monitoraggio e la segnalazione del fallimento delle patch
Ecco alcune misure aggiuntive che puoi adottare per semplificare il processo di segnalazione del fallimento delle patch:
Non dimenticate i registri delle patch di terze parti
Non limitarti ai registri di Windows, ma controlla anche C:\ProgramData\Package Cache\ or %ProgramFiles% per i registri di terze parti.
I registri di Windows Update indicano solo che l’aggiornamento di una patch non è riuscito, ma i registri del fornitore possono aiutare a capire perché non è riuscito. Il controllo di questi registri ti aiuterà a risolvere gli errori più rapidamente.
Creare un runbook che il team possa utilizzare
Un runbook è un documento in evoluzione che delinea i tipi di errori più comuni, come identificarli e quali sono i passi successivi da compiere. È uno strumento utile per semplificare la risoluzione dei fallimenti delle patch non riuscite.
Monitoraggio delle tendenze con report basati su soglie
Una patch fallita può essere un problema, ma un errore che si verifica su tre o più dispositivi è un segnale di allarme. Queste installazioni fallite segnalano un problema importante che potrebbe interessare più siti.
Per tenere traccia di questi schemi, crea avvisi quando tre o più macchine segnalano la stessa causa. In questo modo puoi risolvere rapidamente il problema ed evitare che si verifichino fallimenti in futuro.
Tradurre i codici delle cause principali in riepiloghi di facile comprensione
Non tutti gli stakeholder sono esperti di IT in grado di comprendere il significato di “RebootRequired” o “Event ID 20”. È meglio tradurre questi errori in riepiloghi chiari e leggibili da includere nelle revisioni aziendali trimestrali (QBR).
Perché è importante segnalare le cause dei fallimenti delle patch
Velocizza la risoluzione dei problemi
La segnalazione del fallimento delle patch elimina le congetture sulla risoluzione dei problemi delle patch non riuscite e consente di automatizzare il processo di correzione. I tuoi tecnici non dovranno più giocare a fare i detective ogni volta che una patch non funziona.
Aiuta a evitare gli stessi errori
Capire perché una patch è fallita in passato ti aiuterà a evitare che si ripeta. Ma soprattutto, ti permetterà di identificare il software obsoleto o le configurazioni problematiche che causano il fallimento delle patch.
Rende più semplice la generazione di report per i QBR e gli audit
Rapporti chiari sui fallimenti delle patch possono aiutarti a creare fiducia con i tuoi clienti durante i QBR e gli audit. Dimostra la tua dedizione alla creazione e al mantenimento di un ambiente IT sicuro.
Il programma di patch viene rispettato
Gli errori non rilevati possono prolungare le finestre di patch o portare a violare i service Level Agreement (SLA). Un database di fallimenti delle patch ti aiuterà a individuare i problemi in anticipo e a regolare il rollout di conseguenza.
Come NinjaOne può migliorare la segnalazione e l’analisi dei fallimenti delle patch
NinjaOne può contribuire a migliorare la segnalazione e l’analisi dei fallimenti delle patch:
- Distribuzione di script di audit standardizzati in più ambienti
- Etichettatura dei dispositivi con la causa dell’errore e la data e l’ora tramite campi personalizzati invece di utilizzare il registro di Windows
- Impostazione di avvisi per le cause ricorrenti di patch non riuscite, come problemi di disco, blocchi di riavvio o conflitti MSI
- Generazione di rapporti sull’affidabilità delle patch per cliente per la revisione interna e i QBR
- Attivazione di flussi di lavoro di riparazione, come il riavvio forzato e la cancellazione della cache, in base al tipo di errore rilevato
Con l’aiuto di NinjaOne, gli MSP possono chiudere il cerchio tra rilevamento, classificazione, bonifica e reporting senza affidarsi a strumenti di terze parti.
Semplificare la segnalazione del fallimento delle patch con gli strumenti nativi di Windows
Non sono necessari strumenti complessi o costosi per capire come e perché si verificano i fallimenti delle patch. Anche se gli strumenti di terze parti possono essere utili, gli strumenti nativi di Windows, come PowerShell e la registrazione del Registro di sistema, possono aiutare a identificare e classificare le cause principali.
Ma soprattutto, può aiutarti a risolvere i blocchi più comuni con le GPO e consentirti di fornire servizi di bonifica proattivi a tutti i tuoi clienti.
Argomenti correlati:
- Errori nel patch management e come evitarli
- Processo di patch management: Best practice
- Come automatizzare il patch management
- Come disinstallare una patch problematica: una guida passo-passo
Quick-Start Guide
NinjaOne offre solide funzionalità di reporting sulle cause principali dei fallimenti delle patch senza richiedere uno strumento di analisi dedicato. Ecco le caratteristiche principali:
Segnalazione delle cause dei fallimenti delle patch
- Dashboard del patch management
- Fornisce una visione completa degli stati delle patch su tutti i dispositivi
- Include sezioni per:
- Patch in sospeso
- Patch approvate
- Patch rifiutate
- Patch installate
- Patch non riuscite
- Analisi dettagliata delle patch
- Mostra i dettagli della patch, tra cui:
- Numero KB
- Informazioni CVE
- Punteggio di gravità
- Numero di dispositivi interessati
- Requisiti per il riavvio
- Mostra i dettagli della patch, tra cui:
- Analisi del sentimento delle patch basata sull’AI
- Offre approfondimenti intelligenti sui rischi delle patch
- Fornisce uno stato come:
- “Sembra stabile”
- “Attenzione”
- “Problemi noti”
- Aiuta a comprendere le potenziali cause dei fallimenti delle patch
- Funzionalità di filtraggio ed esportazione
- Può filtrare le patch in base a:
- Nome
- Numero CVE
- Numero KB
- Patch ID
- Categoria
- Possibilità di esportare i dati delle patch in CSV per ulteriori analisi
- Può filtrare le patch in base a:
- Integrazione dei dati sulle vulnerabilità
- Collega le informazioni sulle patch con i dati sulle vulnerabilità CVE
- Mostra le informazioni sui rischi di sicurezza legati alle patch
Queste funzionalità consentono di tracciare e analizzare in modo completo le cause principali dei fallimenti delle patch direttamente all’interno della piattaforma NinjaOne, eliminando la necessità di uno strumento di analisi separato.
