80 votes

Suppression du périphérique USB à partir 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 effectue est de "supprimer" en toute sécurité le lecteur USB sur lequel il effectue la sauvegarde. J'ai l'impression que le fait de brancher le disque dans le lecteur même Le port USB conserve toujours le même DEV_ID (corrigez-moi si je me trompe). Avec une ligne de commande (ou PowerShell), comment puis-je dire à Windows de supprimer automatiquement le matériel en toute sécurité sans intervention de l'utilisateur ?

À titre indicatif, il serait bon de savoir si d'autres systèmes d'exploitation ont un moyen de faire cela.

75voto

Karan Points 54603

En plus de celui d'Uwe Sieber RemoveDrive mentionné dans l'autre réponse, il y a tout un tas d'utilitaires qui peuvent accomplir ceci. En voici une petite liste :

  • Éjecteur de disque USB est principalement un utilitaire basé sur l'interface graphique, mais il peut également être utilisé à partir de la ligne de commande pour éjecter le lecteur sur lequel le programme est exécuté, ou n'importe quel lecteur en spécifiant la lettre du lecteur / le nom du lecteur (partiel) / le point de montage, etc. Gratuit et open source.

    USB Disk Ejector

  • Retirer la clé USB en toute sécurité n'est pas gratuit mais c'est un utilitaire de suppression de disque sur des stéroïdes, avec beaucoup de fonctionnalités avancées dont bien sûr support en ligne de commande . Zentimo est son grand frère, avec même plus caractéristiques .

    USB Safely Remove

  • L'équipe de Microsoft DevCon est la version en ligne de commande de Device Manager. Outre la version originale de Win2K/XP disponible sur la page de la KB, il existe des versions plus récentes (32 et 64 bits) disponibles auprès de diverses sources MS, comme indiqué dans cette page. Où trouver DevCon.exe article. DevCon.exe pour Windows 7 (et probablement aussi pour Windows 8) peut être trouvé enfoui dans le répertoire approprié Kit de pilotes Windows (WDK) comme indiqué dans ce fil (qui contient également des liens de téléchargement vers le extrait de l'exécutable ).

    devcon status * o devcon hwids * o devcon findall =usb (pour une liste plus compacte) devrait vous indiquer l'ID matériel du périphérique. Par exemple :

    USB \VID_0781 &PID_7113 \0001162825
    Nom : Périphérique de stockage de masse USB
    Le pilote fonctionne.

    Vous pouvez alors essayer de retirer le dispositif avec devcon remove "USB\VID_0781&PID_7113" (les caractères génériques comme * sont autorisés, mais faites attention ou vous pourriez finir par supprimer quelque chose d'entièrement différent !)


Quelqu'un a demandé " Existe-t-il une commande DOS (cmd.exe pour Win7) pour éjecter une clé USB ? "qui a malheureusement été fermé car il faisait double emploi avec ce fil. Cependant, la question portait sur l'éjection des clés USB pendant que l'on se trouve dans l'environnement de travail. 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 vous aider. Dans une telle situation, la méthode suivante utilisant Diskpart devrait fonctionner :

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

  2. Type list volume

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

  4. Type select volume <number> , donde <number> est le numéro de volume noté ci-dessus

    Diskpart

  5. Type remove all dismount

  6. Type exit pour quitter Diskpart

Vous devriez maintenant être en mesure de retirer votre clé USB en toute sécurité sans craindre de perdre des données.

35voto

stijn Points 1927

RemoveDrive m'a bien servi dans le passé

22voto

climenole Points 3358

Pour répondre à ce question... Tu n'as pas besoin de trucs de tierces parties.

Avec une ligne de commande (ou PowerShell), comment puis-je dire à Windows d'utiliser en toute sécurité la fonction de retirer le matériel en toute sécurité et automatiquement 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 Retirer le matériel en toute sécurité :

The Safely Remove Hardware Dialog

6voto

Overmind Points 9514

Puisque c'est un périphérique de sauvegarde, cela signifie que c'est un périphérique de stockage, donc cela peut être fait à partir de powershell - il suffit de remplacer X : avec votre lettre de lecteur désirée :

$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("X:").InvokeVerb("Eject")

1voto

Yahoo Serious Points 196

Selon cet article 7tutorials vous pouvez activer le débranchement sécurisé en définissant l'option "Suppression rapide". Cela désactivera la mise en cache en écriture par appareil dont l'impact sur les performances est "négligeable" ? Voici les étapes à suivre pour Windows 7.

( Modifier ) Selon cet article sur le comment-faire mais vous devez tout de même faire attention lorsque vous choisissez l'option "suppression rapide". Cela désactivera la mise en cache en écriture, et évitera ainsi la plupart des problèmes. Mais certains programmes peuvent continuer à écrire en direct, jusqu'à ce qu'ils soient explicitement éjectés/supprimés. ( Fin du montage )

Des pas :

  • branchez le dispositif dans la clé USB
  • ouvrez le Gestionnaire de périphériques
  • étendre les lecteurs de disques
  • Cliquez avec le bouton droit de la souris sur votre lecteur amovible, par exemple "Périphérique USB2.0 Flash Disk".
  • sélectionnez Propriétés
  • cliquez sur l'onglet Politiques
  • activer "Suppression rapide" (désactiver "Meilleures performances")

( Modifier ) 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. (Du moins dans mon édition de Windows 10).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X