it-swarm-eu.dev

Windows può dirmi cosa sta usando la mia unità USB?

Essendo il buon cittadino che sono, ho lasciato il tasto sinistro del mouse sull'icona "Rimozione sicura dell'hardware" nella mia barra delle applicazioni e selezionare la mia unità USB per scendere.

Quindi ottengo il messaggio:

Windows non può fermare il tuo dispositivo volume generico perché è in uso. Chiudere tutti i programmi o le finestre che potrebbero utilizzare il dispositivo, quindi riprovare più tardi.

Ovviamente, essendo il sistema operativo, sa esattamente quali applicazioni stanno usando il mio dispositivo. Allora perché non me lo dice?

O c'è un modo che posso scoprire?

92
PP.

È possibile utilizzare Sysinternals Process Explorer per trovare l'handle per tutti i file aperti. Basta selezionare il Find menu e selezionare Find Handle or DLL. Nella finestra di dialogo che si apre inserire la lettera di unità nella casella di ricerca. I risultati della ricerca dovrebbero mostrare tutti i file che sono aperti dall'unità e quale processo li ha aperti.

55
heavyd

Metodo Simpler : Windows (almeno 10, AFAIK) crea una voce nel registro eventi quando si tenta di espellere un'unità rimovibile e non è possibile perché un processo ha un blocco su di esso. I due ID evento 225 mostreranno l'ID del processo e il nome del processo responsabile del blocco.

Passo dopo passo:

1) Avvia il visualizzatore di eventi

2) Apri "Registri di Windows", quindi "Sistema"

3) Fare clic con il tasto destro su "Sistema" e selezionare "Filtro registro corrente"

4) Nella finestra di dialogo che appare, inserisci "225" (senza virgolette) dove dice "Tutti gli ID evento"

5) Verranno quindi visualizzati tutti gli eventi relativi a impossibilità di espulsione perché un processo ha bloccato l'unità.

6) Guarda i timestamp di tutte queste voci e scopri quali sono in relazione all'ora effettiva in cui hai provato a espellere l'unità.

7) Prendere le misure appropriate. La fine di un'attività con garbo (chiudendo il programma che ha il blocco) è buona parte del tempo. L'arresto del servizio di ricerca di Windows è anche ok. Fermare una scansione antivirus dovrebbe essere ok (se non si sospetta che si abbiano dei virus al momento). Entrare nel task manager e uccidere il processo potrebbe non essere ok. Come affrontare questo è oltre lo scopo di questa domanda.

8) (Salva la vista ...) nel pannello Azioni (nella cornice destra) puoi "Salva filtro in visualizzazione personalizzata ..." così lo troverai in "Visualizzazioni personalizzate" (nella cornice sinistra sopra la " Registri di Windows ")

ID processo:  Event Viewer Entry

Nome del processo:  Event Viewer Entry

8) Se non si dispone di un'altra voce con un nome di processo , il processo di sistema (id processo 4) contiene l'unità. Per aggirare questo devi andare sulla gestione del disco e mettere l'unità che vuoi espellere offline . Se il file si trova sull'unità di avvio, non puoi metterlo offline. In questo caso, vedi la nota seguente:

UPDATE 2018 : Ho visto applicazioni come WhatsApp Desktop mantenendo gli handle su Chrome Canary tramite System Process . Dal momento che non è possibile espellere il disco di avvio (perché è in uso), la soluzione era usare un'altra utility nifty Sysinternals , chiamata Handle . Dopo aver chiuso il programma che ha il file bloccato, lanciare l'handle ed eseguire (ad esempio) handle64 "Chrome SxS\Application\chrome.exe" per vedere se gli handle sono ancora presenti sul file che ha il blocco PID 4. Tramite tentativi ed errori, chiudere ogni programma in esecuzione, fino a quando non ci sono più maniglie sul file bloccato.

Metodo migliore (a pagamento)

Scarica ed esegui SafelyRemove . Ti aiuta a espellere l'unità e, se non può farlo, mostra quali processi hanno un blocco su di essa:

 enter image description here

103
Gaia

Puoi anche usare command line per interrogare il log di Windows , con wevtutil.exe (da Windows 7) sapendo che Windows Kernel-PnP usa l'ID evento 225 per loggare sistema (sempre con ID processo 4) rifiuto di rimuovere o espellere il dispositivo USB\VID _ #### & PID _ ############ (dove il numero # indica i numeri esadecimali).

wevtutil qe System /q:"*[System[(EventID=225)]]" /c:5 /f:text /rd:true
  • qe Sistema: query eventi dal registro di sistema
  • / q: query con XPath
  • EventID=225 significa che il sistema ha rifiutato una richiesta di eiezione
  • / c: 5: numero di voci da recuperare (5 qui)
  • / f: text: format (l'impostazione predefinita è xml)
  • / rd: true: ordine inverso (prima il più recente)

Lo uso in uno script batch.

5
Tchonialite

Per me (Windows 7).

  1. Hit Windows tasto
  2. In "cerca programmi e file: digita: diskmgmt.msc
  3. Nella lista di ricerca trova la voce e fai clic con il pulsante destro del mouse - seleziona Esegui come amministratore
  4. Inserisci le credenziali di amministratore per eseguire "Gestione disco" (se richiesto)
  5. Trova l'unità USB offendente che non verrà espulsa nell'elenco dei dischi
  6. Pannello a sinistra, tasto destro seleziona " Espelli "
  7. Maniglie "dovrebbe" chiudere - puoi sempre ricontrollare in sys internals process Explorer

Nota: "Rimozione sicura dell'hardware e dei supporti di espulsione" L'icona della barra delle applicazioni non mostra più l'unità USB - solo tre punti

  1. Rimuovere fisicamente l'unità
5
blakev

Ecco un comando rapido PowerShell per interrogare il registro eventi e mostrare quale applicazione blocca l'espulsione dell'unità (funziona con Windows 10, probabilmente funziona anche con 7/8)

Get-EventLog -LogName System -after (Get-Date).AddHours(-1) | Where-Object {$_.EventID -eq 225} | Sort-Object TimeGenerated | Format-Table -Wrap

L'output elencherà tutte le istanze dell'ultima ora in cui il sistema non è stato in grado di espellere un'unità disco. Il Message column mostra il processo che ha bloccato l'eiezione. Nel mio esempio di seguito, il task manager era effettivamente il colpevole e sono stato in grado di espellere dopo aver chiuso il task manager.

PS C:\Users\Jonathan> Get-EventLog -LogName System -after (Get-Date).AddHours(-1) | \Where-Object {$_.EventID -eq 225} | Sort-Object TimeGenerated | Format-Table -Wrap

   Index Time          EntryType   Source                 InstanceID Message
   ----- ----          ---------   ------                 ---------- -------
   14692 Sep 07 10:50  Warning     Microsoft-Windows-Ke          225 The application \Device\HarddiskVolume4\Windows\System32\Taskmgr.exe with process id 11972 stopped
                                   rnel-PnP                          the removal or ejection for the device USB\VID_0781&PID_5575\200445301013C111B1A0.
   14693 Sep 07 10:50  Warning     Microsoft-Windows-Ke          225 The application \Device\HarddiskVolume4\Windows\System32\Taskmgr.exe with process id 11972 stopped
                                   rnel-PnP                          the removal or ejection for the device USB\VID_0781&PID_5575\200445301013C111B1A0.
5
Jon

È possibile avviare resmon.exe (tramite WIN + R), andare su disco> Attività disco> Ordina per file Ora è possibile vedere tutti i file a cui accede il sistema e quali processi vi accedono, ordinati per il percorso del file (che inizia btw con una lettera di unità). Potrebbe non funzionare con tutti i casi, ma è un approccio semplice.

Riavviare il computer sembra "liberare" l'utilizzo del dispositivo. Inoltre, per una rimozione più rapida, puoi disabilitare la memorizzazione nella cache di Windows nella sezione Hardware del tuo dispositivo, a volte Windows impiegherà più tempo del previsto per svuotare la cache su disco esterno e visualizzerà quel messaggio dicendo che il dispositivo è in uso (perché sarà, Windows stesso)

1
Felype

Aveva l'USB che Windows segnalava di essere in uso ... come tutti gli altri qui.

In Windows 10 Ctrl + Alt + Canc arriva a Task Manager.

Trova scorrendo - Esplora risorse. ed evidenziare.

In basso a destra è un bel pulsante amichevole chiamato "Processo di riavvio"

Doppia tripla verifica che "Esplora risorse" sia l'unica cosa evidenziata.

Fai clic con il pulsante sinistro del mouse sul pulsante "Riavvia processo".

Ho avuto solo un Explorer, altri ne hanno a volte due. Prendi nota di quale ritorna. Prova e chiudi/espelli l'USB. Il mio ha funzionato bene, chiudi l'USB.

Se il tuo non espelle/chiude, probabilmente era l'altro Explorer. Riprova e ripristina quello. In bocca al lupo.

0
John Henson

Se apri "Risorse del computer" e l'unità non è elencata nelle intestazioni "Archivi rimovibili", Windows lo visualizza come risorsa di sistema fissa per qualche motivo. Dovrai smontare qualsiasi partizione sul disco.

In questo caso, apri "Gestione computer", quindi vai su "Gestione disco". Per ogni partizione sul dispositivo, fare clic con il pulsante destro del mouse sulla partizione, selezionare "Cambia lettere e percorsi di unità" e rimuovere le eventuali lettere di unità assegnate a tale partizione. Una volta che lo fai, dovresti scoprire che la funzione "eject in sicurezza" funziona come speravi.

0
user1575326