Se nei tuoi server Windows compare l’evento “Kernel‑EventTracing, ID 2” con errore 0xC0000035 relativo a “SensorFramework”, il sistema sta segnalando una collisione di nome in una sessione ETW. In questa guida trovi diagnosi, cause e una procedura completa e ripetibile per eliminarlo in modo sicuro.
Cos’è l’errore Kernel‑EventTracing – Event ID 2
Il Visualizzatore eventi registra una voce con origine Kernel‑EventTracing e Event ID 2 quando una sessione di Event Tracing for Windows (ETW) non riesce ad avviarsi. Il caso più frequente sui server è legato al framework sensori di Windows (SensorFramework), ad esempio durante l’avvio o subito dopo un aggiornamento/riavvio di servizi.
Session "SensorFramework-{d61722cd-d3ce-0897-1694-d917cab88c2a}" failed to start with the following error: 0xC0000035
Il codice 0xC0000035
corrisponde a STATUSOBJECTNAME_COLLISION: esiste già una sessione ETW con lo stesso nome (o non è stata chiusa correttamente), quindi l’avvio di una nuova istanza SensorFramework fallisce.
Come funziona ETW e perché si verifica la collisione
Event Tracing for Windows è il meccanismo di tracciamento ad alte prestazioni che molti componenti e driver usano per scrivere eventi su file ETL o su log di sistema. Ogni sessione ETW ha un nome univoco (es. “SensorFramework” o “SensorFramework‑{GUID}”). Se un processo tenta di avviare una sessione con un nome già esistente o lasciato “appeso” dopo un arresto anomalo, Windows genera l’evento ID 2.
Tipiche cause:
- Driver obsoleti o difettosi dei sensori (accelerometri, sensori di movimento, ambient light, ecc.) che ri‑inizializzano la stessa sessione.
- Servizi (ad es. WMI) che mantengono handle ETW aperti dopo aggiornamenti o riavvii parziali.
- Autologger configurati via Registro o Criteri di gruppo che ricreano la sessione a ogni boot.
- Attività pianificate o script di avvio che eseguono
logman
/tracelog
in parallelo. - Arresti improvvisi o crash che lasciano sessioni orfane.
Panoramica del problema
In molti ambienti “tutti i server” segnalano a intervalli regolari lo stesso errore in Registro eventi:
Session "SensorFramework-{d61722cd-d3ce-0897-1694-d917cab88c2a}" failed to start with the following error: 0xC0000035
Il codice 0xC0000035
(STATUSOBJECTNAME_COLLISION
) indica che un’istanza di Event Tracing for Windows (ETW) con lo stesso nome è già attiva o non è stata chiusa correttamente, impedendo l’avvio di una nuova sessione “SensorFramework”.
Soluzioni proposte (ordine logico)
- Verificare e chiudere sessioni ETW duplicate
logman query # elenca tutte le sessioni ETW logman stop "NomeSessione" -ets
Se “SensorFramework‑{GUID}” è ancora elencata, arrestarla. - Riavviare il servizio WMI
net stop winmgmt net start winmgmt
Libera eventuali handle ETW lasciati aperti dal servizio. - Pulire sessioni orfane nei log di Windows
wevtutil el # elenca i log wevtutil cl "SensorFramework" # pulisce il log interessato
- Aggiornare driver, in particolare quelli dei sensori Gestione dispositivi → sensori/framework → Aggiorna driver. Driver obsoleti possono tentare di ri‑inizializzare la stessa sessione ETW.
- Controllare criteri di gruppo e utilità di pianificazione gpedit.msc: cercare policy che creino sessioni Autologger. Task Scheduler: individuare task che avviano ETW all’avvio.
- Analizzare Event Viewer per errori correlati Percorso: Applications and Services Logs → Microsoft → Windows → Kernel‑EventTracing. Individuare pattern o processi che innescano la collisione.
Guida operativa dettagliata
Verifica immediata dello stato delle sessioni
Eseguire da Prompt dei comandi con privilegi elevati:
logman query -ets | findstr /I "SensorFramework"
Interpretazione:
- Se vedi una voce
SensorFramework
in Running, prova a chiuderla:logman stop "SensorFramework" -ets
. - Se compaiono più voci SensorFramework‑{GUID}, chiudile una alla volta finché l’elenco non è vuoto.
- Se
logman stop
restituisce “The data area passed to a system call is too small” o errori simili, riprova indicando esattamente il nome completo tra virgolette.
Alternative in PowerShell
PowerShell non espone nativamente tutte le sessioni ETW, ma puoi orchestrare logman
e ottenere un output più leggibile:
powershell -NoLogo -NoProfile -Command ^
"$s=(logman query -ets); $s -split '\r?\n' | ? {$_ -match 'SensorFramework'}"
Riavvio sicuro di WMI
WMI (winmgmt
) può trattenere handle ETW. Riavviarlo è spesso risolutivo, ma in produzione fallo in una finestra di manutenzione perché alcune console o agent potrebbero perdere la sessione.
net stop winmgmt
net start winmgmt
Dopo il riavvio di WMI, ripeti logman query -ets
per verificare che la sessione “SensorFramework” non venga riaperta automaticamente.
Pulizia dei log correlati
Non sempre esiste un log con nome “SensorFramework”, ma se il tuo ambiente ne ha uno, pulirlo può sbloccare l’Autologger:
wevtutil el | findstr /I "sensor"
wevtutil cl "SensorFramework"
In ogni caso, controlla e, se necessario, pulisci il log Microsoft‑Windows‑Kernel‑EventTracing/Admin per rimuovere residui di sessioni fallite:
wevtutil cl "Microsoft-Windows-Kernel-EventTracing/Admin"
Aggiornamento e igiene dei driver
Nei server fisici (o VM con integrazioni OEM) possono essere presenti driver di sensori. Procedi così:
- Apri Gestione dispositivi e verifica la sezione Sensori o voci relative al framework sensori.
- Fai clic destro → Aggiorna driver e installa versioni recenti o fornite dal vendor.
- Se il server non usa i sensori, valuta di disabilitare il dispositivo (non rimuoverlo se è integrato).
Puoi anche ottenere un elenco veloce via PowerShell:
Get-PnpDevice | Where-Object { $.FriendlyName -match 'Sensor' -or $.Class -match 'Sensor' } |
Format-Table -AutoSize Status, Class, FriendlyName, InstanceId
Controllo di Autologger e criteri
Le sessioni ETW “autologger” possono essere definite dal Registro o da Criteri di gruppo. Verifica la chiave:
HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\SensorFramework
Se presente con Start = 1
(avvio all’avvio), prova a impostare Start = 0
o a rinominare temporaneamente la chiave (prima fai un backup):
reg export "HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\SensorFramework" "%USERPROFILE%\Desktop\SensorFramework.reg"
reg add "HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\SensorFramework" /v Start /t REG_DWORD /d 0 /f
Dopo la modifica, riavvia il server e verifica se l’evento ID 2 ricompare.
Ricerca di attività pianificate o script che avviano ETW
Alcuni pacchetti di monitoraggio o script DevOps possono creare sessioni ETW in avvio. Cerca stringhe chiave:
schtasks /query /fo LIST /v | findstr /I "ETW Autologger SensorFramework logman tracelog"
Se individui un’attività che avvia la sessione in parallelo a un’altra, valuta di serializzare l’avvio o di rimuoverla se ridondante.
Analisi Event Viewer per correlazioni
Filtra gli eventi “Kernel‑EventTracing” e concentra l’analisi nel boot corrente:
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Kernel-EventTracing/Admin'; Id=2} -MaxEvents 50 |
Select-Object TimeCreated, Id, ProviderName, Message
Confronta gli orari con altri eventi (driver, servizi, attività pianificate) per individuare il trigger della collisione.
Tabella decisionale rapida
Sintomo | Probabile causa | Azione consigliata |
---|---|---|
Evento ID 2 all’avvio, isolato | Sessione non chiusa correttamente | Chiudi con logman stop , riavvia WMI, verifica persistenza |
Evento ID 2 a ogni riavvio | Autologger configurato | Imposta Start=0 in Registro o rivedi GPO |
Evento ID 2 sporadico | Task o script concorrenti | Rivedi attività pianificate e pipeline di bootstrap |
Eventi ravvicinati con errori driver | Driver sensori obsoleto | Aggiorna/Disabilita dispositivo non utilizzato |
Non si riesce a fermare la sessione | Handle bloccato in un servizio | Riavvia winmgmt o programma un riavvio controllato |
Automazione con PowerShell
Lo script seguente esegue i passaggi principali: individua e chiude le sessioni duplicate, riavvia WMI, pulisce i log e disattiva l’Autologger “SensorFramework” (senza eliminare la chiave). Eseguilo come amministratore in una finestra di manutenzione.
#region Stop sessioni ETW correlate
$names = & logman query -ets | Where-Object { $_ -match 'SensorFramework' }
if ($names) {
$names -split "`r?`n" | ForEach-Object {
if ($_ -match '^(.*)') {
$n = $_.Trim()
if ($n) { & logman stop "$n" -ets 2> $null | Out-Null }
}
}
}
\#region Riavvio WMI
& net stop winmgmt /y
Start-Sleep -Seconds 3
& net start winmgmt
\#region Pulizia log
& wevtutil cl "Microsoft-Windows-Kernel-EventTracing/Admin" 2> \$null
& wevtutil el | Select-String -Pattern "SensorFramework" | ForEach-Object {
& wevtutil cl "$\_"
}
\#region Disattiva Autologger (Start=0) con backup
\$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\WMI\Autologger\SensorFramework"
if (Test-Path \$regPath) {
\$backup = Join-Path \$env\:USERPROFILE "Desktop\SensorFramework.reg"
& reg export "HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\SensorFramework" "\$backup" /y | Out-Null
New-ItemProperty -Path \$regPath -Name "Start" -PropertyType DWord -Value 0 -Force | Out-Null
}
Write-Host "Operazione completata. Riavviare il server e verificare l'assenza dell'evento ID 2."
Gestione del servizio Sensori
Se l’hardware del server non utilizza il framework sensori, prevenire il riavvio automatico della sessione può essere la strada più semplice. Verifica i servizi disponibili e valuta l’impatto nell’ambiente (VDI, laptop usati come server, host hyper‑converged con componenti OEM possono dipendere da sensori fisici).
Get-Service | Where-Object {$.Name -match 'Sensor' -or $.DisplayName -match 'Sensor|Sensori'} |
Select-Object Status, Name, DisplayName
Se appropriato, disabilita con cautela (esempi comuni, non tutti presenti in ogni build):
sc stop SensorService
sc config SensorService start= disabled
sc stop SensrSvc
sc config SensrSvc start= disabled
Nota: conferma sempre la dipendenza da questi servizi nei tuoi pacchetti OEM o agent di monitoraggio prima di disabilitarli.
Best practice per ambienti enterprise
- Windows Update: applica gli ultimi cumulativi; spesso contengono fix per l’infrastruttura ETW.
- Change management: documenta su quale passaggio la collisione scompare (utile per la post‑mortem e per standardizzare il runbook).
- Conformità driver: mantieni un catalogo dei driver ammessi; blocca driver legacy che ricreano sessioni ETW non necessarie.
- GPO: centralizza le impostazioni Autologger; evita che team diversi creino sessioni con lo stesso nome.
- Telemetria: raccogli il conteggio giornaliero dell’Event ID 2 e imposta una soglia di allerta quando supera il baseline.
Controlli post‑intervento
- Riavvia il server.
- Apri il Visualizzatore eventi → Microsoft → Windows → Kernel‑EventTracing → Admin e verifica l’assenza di nuovi ID 2.
- Esegui
logman query -ets
e conferma che non ci siano sessioni “SensorFramework” attive senza motivo. - Registra l’esito nel ticket di manutenzione e aggiorna il runbook.
Domande frequenti
È un errore critico per la stabilità del sistema?
Di norma è rumore (noise) operativo: la sessione ETW non parte ma il sistema continua a funzionare. Tuttavia, se correlato ad altri errori driver o a servizi che non si avviano, va risolto per evitare perdita di diagnostica o loop di tentativi.
Posso ignorarlo se appare solo al boot?
Se compare una sola volta al riavvio e non è ricorrente, puoi registrarlo come noto. Se invece compare a ogni boot o più volte al giorno, segui la procedura completa per rimuovere la causa.
La pulizia del log elimina dati utili?
Sì, la pulizia cancella gli eventi nel log di destinazione. Prima di eseguirla, effettua un export nei sistemi dove la conservazione dei log è obbligatoria.
È meglio disattivare i servizi dei sensori?
Solo se il server non usa i sensori e hai verificato che nessuna applicazione dipenda da essi. In caso di dubbio, preferisci l’aggiornamento dei driver e la correzione dell’Autologger.
Suggerimenti aggiuntivi
- Windows Update: assicurarsi di aver installato gli ultimi aggiornamenti cumulativi, che spesso includono fix per l’infrastruttura ETW.
- Registro di sistema: se il problema persiste, verificare la chiave
HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger\SensorFramework
; se presente conStart = 1
, provare a impostareStart = 0
o rinominare temporaneamente la chiave (eseguire un backup prima della modifica). - Servizio Sensori: se l’hardware non sfrutta il framework sensori, valutare di disabilitare il servizio “Sensori” per prevenire il ri‑avvio automatico della sessione.
- Monitoraggio continuo: dopo ciascun intervento riavviare il server e controllare se l’evento ID 2 ricompare; documentare quale passaggio risolve definitivamente il conflitto.
Esempio di checklist pronta all’uso
- Esegui
logman query -ets
e fotografa lo stato delle sessioni. - Chiudi le sessioni “SensorFramework” residuali con
logman stop
. - Riavvia WMI (
net stop winmgmt
/net start winmgmt
). - Pulisci i log “Kernel‑EventTracing/Admin” e, se esiste, “SensorFramework”.
- Aggiorna o disabilita i driver dei sensori non necessari.
- Controlla Autologger in Registro e imposta
Start=0
se ridondante. - Cerca attività pianificate e rimuovi duplicati.
- Riavvia il server e verifica: nessun nuovo Event ID 2.
Indicatori di successo
- Zero occorrenze di Event ID 2 nell’ultimo ciclo di boot.
- Assenza della sessione “SensorFramework” tra le sessioni ETW attive (
logman query -ets
). - Nessun impatto su servizi applicativi o agent dopo il riavvio di WMI.
Conclusioni
L’errore Kernel‑EventTracing, Event ID 2 (0xC0000035) legato a SensorFramework è la manifestazione di una semplice collisione di nome fra sessioni ETW. Seguendo l’ordine logico di intervento — chiusura delle sessioni duplicate, riavvio di WMI, pulizia dei log, verifica di Autologger/attività e aggiornamento dei driver — puoi eliminarlo in modo definitivo e prevenire ricadute. Integra i controlli nella tua pipeline di manutenzione e documenta il passaggio che risolve: diventerà il tuo runbook standard per tutti i server.