2012-06-29 20:01:16 +0000 2012-06-29 20:01:16 +0000
66
66

Retirer le périphérique USB de la ligne de commande

Je suis en train de construire un script de sauvegarde pour Windows 7, et la dernière action que je veux qu'il exécute est de “retirer” en toute sécurité la clé USB sur laquelle il fait une sauvegarde. J'ai l'impression que brancher le lecteur sur le même port USB tout le temps permettra de conserver le même DEV_ID (corrigez-moi si je me trompe). Avec une ligne de commande (ou PowerShell), comment puis-je dire à Windows de retirer automatiquement le matériel en toute sécurité sans intervention de l'utilisateur ?

Tout comme un porte-bagages, il serait bon de connaître les autres OS qui peuvent avoir un moyen de faire cela.

Réponses (6)

67
67
67
2012-10-12 01:14:18 +0000

Outre le [ RemoveDrive ]0x3 d'Uwe Sieber mentionné dans l'autre réponse, il existe tout un tas de services publics qui peuvent y parvenir. En voici une petite liste :

  • USB Disk Ejector est principalement un utilitaire basé sur une interface graphique, mais il peut également être utilisé en ligne de commande pour éjecter le lecteur à partir duquel le programme est exécuté, ou tout autre lecteur en spécifiant la lettre du lecteur / le nom (partiel) du lecteur / le point de montage, etc. Libre et open source.

  • USB Safely Remove n'est pas gratuit mais c'est un utilitaire de suppression de disque sur stéroïdes, avec beaucoup de fonctionnalités avancées , y compris bien sûr support en ligne de commande . Zentimo est son grand frère, avec même plus fonctionnalités .

  • La version de Microsoft DevCon est la version en ligne de commande de Device Manager. Outre la version originale Win2K/XP-era disponible sur la page KB, il existe des versions plus récentes (32 et 64 bits) disponibles auprès de diverses sources MS, comme mentionné dans cet article Where to find DevCon.exe . DevCon.exe pour Windows 7 (et probablement aussi pour Windows 8) peut être trouvé enterré dans le Windows Driver Kit (WDK) approprié, comme mentionné dans ce fil de discussion (qui contient aussi des liens de téléchargement vers le exécutable extrait ).


Quelqu'un a demandé Is there a DOS prompt (cmd.exe from Win7) command to eject a thumb drive ? “ qui a malheureusement été fermé comme un double de ce fil de discussion. Cependant, la question portait sur l'éjection de clés USB dans la Console de récupération Windows / Invite de commande de récupération du système, il est donc peu probable qu'un des utilitaires ci-dessus puisse aider. Dans une telle situation, la méthode suivante utilisant Dispart devrait fonctionner :

  1. tapez diskpart et attendez l'invite du diskpart (DISKPART>)

  2. Tapez list volume

  3. Notez soigneusement le numéro de volume de la clé USB (utilisez les propriétés énumérées telles que la lettre de la clé, l'étiquette, le type et la taille pour obtenir de l'aide)

  4. Tapez select volume <number>, où <number> est le numéro de volume noté ci-dessus

  5. Tapez remove all dismount

  6. Tapez exit pour quitter Diskpart

Maintenant vous devriez pouvoir retirer votre clé USB en toute sécurité sans craindre de perte de données.

33
33
33
2012-06-29 20:10:44 +0000

RemoveDrive m'a bien servi dans le passé

17
17
17
2012-10-12 05:56:40 +0000

Pour répondre à cette question… Vous n'avez pas besoin de trucs de tiers.

Avec une ligne de commande (ou PowerShell), comment puis-je dire à Windows de retirer automatiquement le matériel en toute sécurité sans intervention de l'utilisateur ?

Exécutez cette commande : RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll pour faire apparaître la boîte de dialogue Supprimer le matériel en toute sécurité :

4
4
4
2017-06-14 10:46:54 +0000

Comme il s'agit d'un dispositif de sauvegarde, cela signifie qu'il s'agit d'un dispositif de stockage, donc il peut être fait à partir de powerhell - il suffit de remplacer X : par la lettre du lecteur désiré :

$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("X:").InvokeVerb("Eject")
1
1
1
2014-07-01 14:28:21 +0000

Selon ce 7tutorials-article , vous pouvez activer une déconnexion sûre en définissant “Suppression rapide”. Cela désactivera la mise en cache en écriture par périphérique, dont l'impact sur les performances est “négligeable” ? Les étapes à suivre pour Windows 7 sont indiquées ci-dessous.

( Editer ) Selon cet article howtogeek , vous devez toujours être prudent lorsque vous paramétrez “Suppression rapide”. Cela désactivera la mise en cache en écriture, et évitera ainsi la plupart des problèmes. Mais certains programmes peuvent encore écrire des choses “en direct”, jusqu'à ce qu'ils soient explicitement éjectés/supprimés. ( Fin de l'édition )

Étapes :

  • brancher le périphérique dans le lecteur USB
  • ouvrir le gestionnaire de périphériques
  • développer les lecteurs de disque
  • cliquer avec le bouton droit de la souris sur votre lecteur amovible, par exemple “USB2.0 Flash Disk USB Device”.
  • sélectionnez Propriétés
  • cliquez sur l'onglet Politiques
  • activez “Suppression rapide” (désactivez “Meilleures performances”)

( Editer ) Notez que vous devez utiliser le Gestionnaire de périphériques pour modifier le paramètre, cela ne peut pas être fait à partir de l'Explorateur de fichiers. (Au moins dans mon édition de Windows 10).

0
0
0
2019-11-21 19:57:26 +0000

Je n'ai pas trouvé de commande interne (merci MS), pas un seul script n'a fonctionné non plus, enlever une lettre est une mauvaise façon de faire de l'éjection, la façon interactive n'est pas non plus très cool, et je déteste utiliser des outils tiers. Dans mon cas, j'utilise quelque chose qui est sur mon disque depuis 20 ans : la commande interne Microsoft Windows Sysinternals m'aide :

sync -e x:
  • permet de vider le lecteur usb
  • permet d'éjecter le lecteur usb
  • conserve la lettre
  • ne déforme pas l'arborescence USB

en cas de verrouillage, utilisez Sysinternals handle ou procexp pour le savoir.