Kernel‑EventTracing Event ID 2 su Windows Server: errore 0xC0000035 (STATUSOBJECTNAME_COLLISION) e soluzioni ETW definitive

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.

Indice

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)

  1. Verificare e chiudere sessioni ETW duplicate logman query # elenca tutte le sessioni ETW logman stop "NomeSessione" -ets Se “SensorFramework‑{GUID}” è ancora elencata, arrestarla.
  2. Riavviare il servizio WMI net stop winmgmt net start winmgmt Libera eventuali handle ETW lasciati aperti dal servizio.
  3. Pulire sessioni orfane nei log di Windows wevtutil el # elenca i log wevtutil cl "SensorFramework" # pulisce il log interessato
  4. Aggiornare driver, in particolare quelli dei sensori Gestione dispositivi → sensori/framework → Aggiorna driver. Driver obsoleti possono tentare di ri‑inizializzare la stessa sessione ETW.
  5. 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.
  6. 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ì:

  1. Apri Gestione dispositivi e verifica la sezione Sensori o voci relative al framework sensori.
  2. Fai clic destro → Aggiorna driver e installa versioni recenti o fornite dal vendor.
  3. 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

SintomoProbabile causaAzione consigliata
Evento ID 2 all’avvio, isolatoSessione non chiusa correttamenteChiudi con logman stop, riavvia WMI, verifica persistenza
Evento ID 2 a ogni riavvioAutologger configuratoImposta Start=0 in Registro o rivedi GPO
Evento ID 2 sporadicoTask o script concorrentiRivedi attività pianificate e pipeline di bootstrap
Eventi ravvicinati con errori driverDriver sensori obsoletoAggiorna/Disabilita dispositivo non utilizzato
Non si riesce a fermare la sessioneHandle bloccato in un servizioRiavvia 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

  1. Riavvia il server.
  2. Apri il Visualizzatore eventi → Microsoft → Windows → Kernel‑EventTracing → Admin e verifica l’assenza di nuovi ID 2.
  3. Esegui logman query -ets e conferma che non ci siano sessioni “SensorFramework” attive senza motivo.
  4. 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 con Start = 1, provare a impostare Start = 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

  1. Esegui logman query -ets e fotografa lo stato delle sessioni.
  2. Chiudi le sessioni “SensorFramework” residuali con logman stop.
  3. Riavvia WMI (net stop winmgmt / net start winmgmt).
  4. Pulisci i log “Kernel‑EventTracing/Admin” e, se esiste, “SensorFramework”.
  5. Aggiorna o disabilita i driver dei sensori non necessari.
  6. Controlla Autologger in Registro e imposta Start=0 se ridondante.
  7. Cerca attività pianificate e rimuovi duplicati.
  8. 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.


Indice