Perché SYSTEM dovrebbe continuare a bloccare gli handle di file eseguibili dopo la chiusura dell'app?


24

Vedo un comportamento strano sul mio computer con Windows 7; sembra che quando un eseguibile viene eseguito, SYSTEM mantiene aperto un handle per il minuto successivo. Ecco il mio incontro più recente:

Ho installato Steam, che avvia steam.exe dopo l'installazione per aggiornarsi. Sembra farlo scrivendo una copia temporanea di se stesso, avviandolo per eseguire il download, quindi sovrascrivendo la copia originale dell'eseguibile. Nel mio caso questo non è riuscito, sostenendo che steam.exe non può essere eliminato.

Ho aperto la cartella e ho cercato di eliminare manualmente steam.exe, ma Windows ha affermato che non avevo l'autorizzazione. Il mio account è un amministratore ed è l'unico account utente su questa macchina. Ma per ogni evenienza, ho avviato Explorer come amministratore, ma non riesco ancora a eliminare il file. Ho portato le proprietà del file nella scheda Sicurezza, ma mostrava solo un messaggio che diceva che non avevo l'autorizzazione per visualizzare le autorizzazioni.

Successivamente, ho richiamato Process Explorer per vedere se qualcosa aveva un blocco sul file. SYSTEM (PID 4) ha funzionato, ma quando ho tentato di chiudere l'handle del file, ha prodotto un errore che indicava che l'handle non era valido. Ho provato a visualizzare le proprietà dell'handle del file, ma non avevo neanche il permesso di farlo.

Ho terminato tutto tranne i processi di sistema non terminabili e ho interrotto tutti i servizi che sono in grado di fare, compresi tutto ciò che riguarda AV e firewall, ma il problema continua ad apparire. Ho provato a usare 'takeown' per darmi la proprietà del file, ma afferma che non ho il permesso di farlo. Altre persone hanno affermato il successo usando uno strumento chiamato "Unlocker", ma aveva lo stesso problema di Process Explorer nel chiudere l'handle del file.

Molto tempo fa ho disabilitato l'indicizzazione e la ricerca di Windows e ho escluso C: \ dall'indicizzazione, quindi la risposta a questa domanda non mi riguarda.

Ogni volta, dopo circa un minuto, la maniglia scompare e il file viene immediatamente eliminato; a quanto pare il tentativo del programma di aggiornamento di eliminarlo è stato messo in coda e alla fine è terminato una volta che il file non era più bloccato. Purtroppo l'aggiornamento è già terminato e non può riprendere. E quando lo reinstallo, ovviamente prova a eseguire di nuovo steam.exe e torno al punto di partenza.

La mia domanda è: perché queste maniglie sono in giro e come posso impedirle di farlo?

Modifica: ecco ulteriori informazioni come richiesto dai commenti:

C:\>fltmc instances
Filter                Volume Name                              Altitude        Instance Name      Frame  VlStatus
--------------------  -------------------------------------  ------------  ---------------------  -----  --------
KLIF                  \Device\Mup                             320400       KLIF                     0
KLIF                  C:                                      320400       KLIF                     0
KLIF                                                          320400       KLIF                     0
luafv                 C:                                      135000       luafv                    0
FileInfo              \Device\Mup                              45000       FileInfo                 0
FileInfo              C:                                       45000       FileInfo                 0
FileInfo                                                       45000       FileInfo                 0

Modifica: GMER indica che il mio antivirus (Kaspersky) è ancora attivo in qualche modo, nonostante lo disabiliti dalla sua stessa interfaccia grafica e il suo servizio venga interrotto.

AttachedDevice  \Driver\tdx \Device\Ip     kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\Tcp    kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\Udp    kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)
AttachedDevice  \Driver\tdx \Device\RawIp  kl1.sys (Kaspersky Unified Driver/Kaspersky Lab ZAO)

Ma tutto ciò sembra essere per i servizi di rete; Non vedo nulla relativo al filesystem. Qualcuno di questi potrebbe essere la causa del problema?

Modifica: ho disabilitato il filtro Kaspersky KLIF, ma il problema di blocco rimane.

Modifica: ho risolto il problema specifico con Steam installando, terminando forzatamente il programma di installazione prima che potesse avviare steam.exe, quindi riavviare in modalità provvisoria ed eseguirlo lì. Quindi apparentemente qualunque cosa blocchi l'eseguibile non è presente in modalità provvisoria.

Anche se ho risolto questo caso particolare, il problema si presenta anche altrove, quindi mi piacerebbe ancora capire cosa sta succedendo.


3
"Sistema" è uno pseudo-processo che rappresenta (approssimativamente parlando) il kernel di Windows. Ulteriori informazioni sulla configurazione (ad es. Quali driver di filtro sono in utente) sarebbero necessari per dare una risposta definitiva.
0xC0000022L

Qual è il modo migliore per ottenere tali informazioni aggiuntive?
DNS

se si tratta di mini filtri, provare a verificare fltmcse si tratta di filtri legacy che sarebbe necessario uno strumento come GMER per elencare gli oggetti filtrati. So che non è lo scopo principale di GMER, ma può essere utilizzato in questo modo. C'era anche qualche strumento da OSR, ma non ricordo il suo nome. Risponderò di nuovo se ricordo.
0xC0000022L

È un'ottimizzazione per i programmi che chiudono e riaprono ripetutamente i file. Il servizio "Esperienza applicazione" annulla l'ottimizzazione per casi speciali come tentare di eliminare da Esplora risorse mentre l'handle è ancora memorizzato nella cache.
user165568,

Risposte:


20

Eseguire le seguenti operazioni:

  1. Disabilita l'indicizzazione sulla posizione problematica.

  2. Abilitare il servizio "Esperienza applicazione" e impostarlo su "Automatico".

Questo è tutto.

Se il problema persiste, potrebbe essere Superfetch, anche se la disabilitazione non mi ha portato fortuna.


5
# 2 (Abilitazione del servizio "Application Experience") ha funzionato per me, grazie! È stato davvero un dolore quando ho eseguito il debug del mio software LIVEditor (live html editor), dal momento che devo ricompilare ripetutamente il file EXE.
Edwin Yip,

1
L'indicizzazione non era qualcosa che volevo disabilitare, ma fortunatamente l'impostazione di Application Experience su Automatic ha funzionato. Non riesco a credere di aver vissuto questo problema negli ultimi 5 anni quando la soluzione era così semplice.
Mordred,

ti ho passato !!
entusiasta il

Iniziando ha AeLookupSvcfunzionato, ma perché? Cos'è questo misterioso servizio?
cdlvcdlv,

6

KLIF è il driver Kaspersky AV. È piuttosto probabile che abbia a che fare con esso.

Il mio modo di agire in tal caso sarebbe contattare Kaspersky e chiedere un consiglio.

Tuttavia, c'è un'altra cosa che puoi provare prima: disabilitare il driver (sotto HKLM\SYSTEM\CurrentControlSet\Services) cercando KLIFo qualcosa di simile come nome chiave e impostando il REG_DWORDvalore Startsu 4(che significa disabilitato), quindi riavviare. Ciò dovrebbe impedire il caricamento del driver del filtro KAV. È quindi possibile utilizzare fltmcper verificare il risultato.

L'output di GMER fornito è irrilevante per il caso in esame poiché influirebbe solo sulle connessioni di rete, non sulle operazioni sui file. Sembra che tu abbia installato qualcosa come Kaspersky Internet Security (o che sia ancora inattivo sul tuo computer).

Modificare: solo FYI luafvè responsabile della virtualizzazione di FS in collaborazione con UAC. Vale a dire se non si ha accesso a un file che viene inserito in una cartella separata all'interno del proprio profilo. FileInfoappartiene a SuperFetch - che in realtà potrebbe essere parte del tuo problema, ma non ho avuto un problema simile su Windows 7 da solo. In genere non è consigliabile disabilitare SuperFetch, anche se è possibile.


Non mi permetterebbe di modificare il valore di quella chiave, quindi ho riavviato in modalità provvisoria e ho apportato la modifica lì. Al riavvio, le voci KLIF vengono eliminate dall'uscita fltmc, ma il problema di blocco rimane.
DNS

Ho aggiunto qualche informazione in più; vedi la mia recente modifica alla domanda.
DNS

@DNS: hai provato a ottenere l'output fltmcin modalità provvisoria? È possibile che SuperFetch non sia attivo. Quando leggi su SuperFetch sembra che la tua descrizione di tenere una maniglia un po 'più a lungo potrebbe essere plausibile.
0xC0000022L

È un'ottima idea, ma purtroppo sia FileInfo che luafv erano attivi in ​​modalità provvisoria.
DNS

Queste moderne suite per la "sicurezza di Internet" sono raramente troppo potenti. MSE + buon senso dovrebbe essere sufficiente.
Kinokijuf,

1

Stavo avendo questo problema con un eseguibile Java tenuto aperto e avevo disabilitato l'esperienza dell'applicazione ... (anche la ricerca di Windows disabilitata) impostando l'esperienza dell'applicazione per l'avvio automatico, l'ho risolto per me. Grazie!!! (Avevo anche avuto problemi con i file che non venivano salvati per un minuto intero e che non ero in grado di eliminare i file fino a un minuto dopo averli chiusi ...


Come si disabilita l'esperienza dell'applicazione?
Simon Sheehan,

Qualsiasi punto di controllo dei servizi di Windows funzionerà: utilizzo Start >> Esegui >> "services.msc" (invio) >> clic destro "esperienza applicazione" >> clic sinistro "proprietà" >> seleziona la scheda "generale" (impostazione predefinita)> > elenco a discesa "tipo di avvio" >> seleziona automatico (clic sinistro) >> fai clic su "applica"
David K

1

Questo mi è successo una volta, e si è rivelato essere un computer remoto con la cartella condivisa aperta.

  1. Utilizzare Handle per scoprire quale processo contiene il file
  2. (Era il sistema nel mio caso)
  3. Prova a chiudere la maniglia: handle.exe -c E14 -p 4. L'handle del file verrà trovato nell'output della ricerca dell'handle del file e il processid sarà probabilmente lo stesso per il sistema.
  4. Ha prodotto Error closing handle: T
  5. Cercando su Google, ho trovato questo relativo alla rete
  6. Ho trovato su un altro computer, infatti avevo la cartella aperta. Chiuso Tutto bene.

0

Ho avuto questo problema durante il tentativo di rinominare una cartella. Ho dovuto interrompere il servizio server durante l'esecuzione della ridenominazione. Il semplice riavvio non ha aiutato, poiché il processo di sistema ha bloccato nuovamente la cartella non appena il servizio server è stato riavviato. Questo probabilmente affronterà anche il problema menzionato qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.