web-dev-qa-db-fra.com

Windows peut-il me dire quelle est l'utilisation de ma clé USB?

En tant que bon citoyen, je clique avec le bouton gauche de la souris sur l'icône "Supprimer le périphérique en toute sécurité" dans la barre des tâches, puis sélectionne le lecteur USB à démonter.

Puis je reçois le message:

Windows ne peut pas arrêter votre périphérique de volume générique car il est en cours d'utilisation. Fermez tous les programmes ou fenêtres susceptibles d’utiliser le périphérique, puis réessayez ultérieurement.

Bien sûr, étant le système d'exploitation, il sait exactement quelles applications utilisent mon appareil. Alors, pourquoi ça ne me dit rien?

Ou y a-t-il un moyen que je puisse découvrir?

92
PP.

Vous pouvez utiliser Sysinternals Process Explorer pour trouver le descripteur de tous les fichiers ouverts. Il suffit de sélectionner le menu Find et de sélectionner Find Handle or DLL. Dans la boîte de dialogue qui s'ouvre, entrez la lettre de lecteur dans la zone de recherche. Les résultats de la recherche doivent afficher tous les fichiers ouverts à partir du lecteur et le processus les ayant ouverts.

55
heavyd

Méthode plus simple : Windows (10 au moins, autant que je sache) crée une entrée dans le journal des événements lorsque vous essayez d'éjecter un lecteur amovible et que vous ne pouvez pas, car un processus est verrouillé. Les deux ID d'événement 225 afficheront l'ID de processus et le nom du processus responsable du verrouillage.

Pas à pas:

1) Démarrer l'observateur d'événements

2) Ouvrez "Windows Logs" puis "System"

3) Faites un clic droit sur "Système" et choisissez "Filtrer le journal actuel"

4) Dans la boîte de dialogue qui apparaît, entrez "225" (sans les guillemets) où il est indiqué "Tous les ID d'événement"

5) Vous verrez alors tous les événements liés à l'impossibilité d'éjecter car un processus a verrouillé le lecteur.

6) Examinez les horodatages de toutes ces entrées et déterminez celles qui correspondent à l'heure à laquelle vous avez essayé d'éjecter le lecteur.

7) Prendre les mesures appropriées. Terminer une tâche en douceur (fermer le programme verrouillé) est correct la plupart du temps. L'arrêt du service Windows Search est également correct. Arrêter une analyse antivirus devrait être correct (si vous ne pensez pas avoir un virus à la fois). Entrer dans le gestionnaire de tâches et tuer le processus pourrait ne pas être correct. Comment traiter cela dépasse le cadre de cette question.

8) (Enregistrer la vue ...) dans le panneau Actions (dans le cadre de droite), vous pouvez "Enregistrer le filtre dans une vue personnalisée ..." afin de le trouver dans "Vues personnalisées" (dans le cadre de gauche au-dessus de la " Journaux Windows ")

Identifiant du processus:  Event Viewer Entry

Nom du processus:  Event Viewer Entry

8) Si vous n'avez pas d'autre entrée avec un nom de processus , le processus système (processus id 4) contient votre disque. Pour contourner celui-ci, vous devrez accéder à la gestion du disque et mettre le lecteur que vous voulez éjecter hors ligne . Si le fichier se trouve sur votre lecteur de démarrage, vous ne pouvez pas le mettre hors ligne. Dans ce cas, voir la note ci-dessous:

UPDATE 2018 : J'ai vu des applications telles que WhatsApp Desktop conservant les poignées sur Chrome Canary via le processus système . Comme vous ne pouvez pas éjecter le disque d’amorçage (car il est en cours d’utilisation), la solution consistait à utiliser un autre utilitaire astucieux Sysinternals , appelé Handle . Après avoir fermé le programme contenant le fichier verrouillé, lancez le descripteur et exécutez (à titre d'exemple) handle64 "Chrome SxS\Application\chrome.exe" pour voir si les descripteurs sont toujours présents sur le fichier doté du verrou PID 4. Par essais et erreurs, fermez chaque programme en cours d'exécution jusqu'à ce qu'il n'y ait plus de descripteurs sur le fichier verrouillé.

Meilleure méthode (payante)

Téléchargez et exécutez SafelyRemove . Il vous aide à éjecter le lecteur et s’il ne peut pas le faire, il affiche les processus verrouillés:

 enter image description here

103
Gaia

Vous pouvez également utiliser la ligne de commande pour interroger le journal Windows , avec wevtutil.exe (depuis Windows 7) en sachant que le Windows Kernel-PnP utilise l'ID d'événement 225 pour vous connecter. système (toujours en ayant l'ID de processus 4) refusant de retirer ou d'éjecter le périphérique USB\VID _ #### & PID _ ############ (où les # désignent des nombres hexadécimaux).

wevtutil qe System /q:"*[System[(EventID=225)]]" /c:5 /f:text /rd:true
  • qe System: événements de requête du journal système
  • / q: requête avec XPath
  • EventID=225 signifie que le système a refusé une demande d'éjection
  • / c: 5: nombre d'entrées à récupérer (5 ici)
  • / f: text: format (xml par défaut)
  • / rd: true: ordre inverse (le plus récent en premier)

Je l'utilise dans un script batch.

5
Tchonialite

Pour moi (Windows 7).

  1. Hit Windows touche
  2. Dans "programmes et fichiers de recherche: tapez: diskmgmt.msc
  3. Dans la liste de recherche, recherchez une entrée et un clic droit - sélectionnez Exécuter en tant qu’administrateur} _
  4. Entrez les informations d'identification de l'administrateur pour exécuter "Gestion des disques" (si nécessaire).
  5. Trouver un lecteur USB offensant qui ne sera pas éjecté dans la liste des disques
  6. Panneau de gauche, clic droit sélectionnez " Ejecter "
  7. Les poignées "devraient" se fermer - vous pouvez toujours vérifier à nouveau dans le processus interne du système Explorer

Remarque:"Supprimez le matériel en toute sécurité et éjectez le média"L'icône de la barre des tâches ne montre plus le lecteur USB, mais seulement trois points

  1. Retirer physiquement le lecteur
5
blakev

Voici un rapide PowerShell commande pour interroger le journal des événements et montrer quelle application bloque l'éjection de lecteur (fonctionne pour moi avec Windows 10, fonctionne probablement aussi avec 7/8)

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

La sortie répertorie toutes les instances de la dernière heure au cours desquelles le système n'a pas pu éjecter un lecteur de disque. La colonne Message indique le processus qui a bloqué l'éjection. Dans mon exemple ci-dessous, le gestionnaire de tâches était en fait le coupable et j'ai pu l'éjecter après avoir fermé le gestionnaire de tâches.

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

Vous pouvez démarrer resmon.exe (via WIN + R), accéder au disque> Activité du disque> Trier par fichier. Vous pouvez maintenant voir tous les fichiers en cours d'accès par le système et les processus qui y accèdent, classés par chemin de fichier (qui commence par btw). avec une lettre de lecteur). Peut ne pas fonctionner avec tous les cas, mais c'est une approche simple.

Redémarrer l'ordinateur semble "libérer" l'utilisation de l'appareil. De plus, pour une suppression plus rapide, vous pouvez désactiver la mise en cache Windows sur la section Matériel de votre périphérique. Parfois, Windows mettra plus de temps que prévu à vider le cache sur un disque externe et affichera le message indiquant que le périphérique est en cours d'utilisation (car il le sera par Windows lui-même)

1
Felype

L'USB que Windows a signalé comme étant en cours d'utilisation est le même que tout le monde ici.

Sous Windows 10, Ctrl + Alt + Suppr va dans le Gestionnaire des tâches.

Trouvez en faisant défiler - Explorateur Windows. et mettre en évidence.

En bas à droite se trouve un joli bouton convivial appelé "Processus de redémarrage"

Double triple vérification que "Windows Explorer" est la seule chose en surbrillance.

Cliquez avec le bouton gauche de la souris sur le bouton convivial "Processus de redémarrage".

Je n'avais qu'un seul explorateur, d'autres en ont parfois deux. Notez juste sur lequel on revient. Essayez de fermer/éjecter la clé USB. Le mien a bien fonctionné, fermez la clé USB.

Si le vôtre n’est pas éjecté/fermé, c’est probablement l’autre explorateur. Essaie encore et Restat celui-là. Bonne chance.

0
John Henson

Si vous ouvrez «Poste de travail» et que votre lecteur ne figure pas dans les en-têtes «Stockage amovible», Windows l’affiche en tant que ressource système fixe pour une raison quelconque. Vous devrez démonter toutes les partitions du lecteur.

Si tel est le cas, ouvrez "Gestion de l'ordinateur", puis sélectionnez "Gestion des disques". Cliquez avec le bouton droit de la souris sur chaque partition du périphérique, sélectionnez "Modifier les lettres de lecteur et les chemins d'accès", puis supprimez les lettres de lecteur attribuées à cette partition. Une fois que vous avez agi de la sorte, vous devriez constater que la fonction "éjecter en toute sécurité" fonctionne comme vous le souhaitiez.

0
user1575326