web-dev-qa-db-fra.com

Supprimer 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 souhaite effectuer consiste à "supprimer" en toute sécurité le lecteur USB sur lequel il est en train de sauvegarder. J'ai l'impression que le fait de brancher le lecteur sur le même port USB conservera 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?

En tant que titulaire de réservation, il serait bon de connaître d’autres systèmes d’exploitation pouvant le faire.

56
Canadian Luke

RemoveDrive m'a bien servi par le passé

31
stijn

Outre RemoveDrive de Uwe Sieber, mentionné dans l’autre réponse), de nombreux utilitaires peuvent le faire. Une petite liste suit:


Quelqu'un a demandé "_ (Existe-t-il une commande DOS Invite (cmd.exe de Win7) pour éjecter une clé USB? " Qui a malheureusement été fermée en tant que duplicata de ce fil. Toutefois, la question portait sur l'éjection des clés USB lors du Console de récupération Windows / Invite de commandes de récupération système , il est donc peu probable que l'un des utilitaires ci-dessus vous aide. Dans ce cas, utilisez la méthode suivante ( Diskpart devrait fonctionner:

  1. Tapez diskpart et attendez l'invite de la part du disque (DISKPART>)

  2. Tapez list volume

  3. Notez attentivement 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 obtenir de l'aide).

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

    Diskpart

  5. Tapez remove all dismount

  6. Tapez exit pour quitter Diskpart

Vous devriez maintenant pouvoir retirer en toute sécurité votre clé USB sans craindre la perte de données.

63
Karan

Pour répondre à this question ... Vous n'avez pas besoin de matériel tiers.

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

Exécutez la commande suivante: RunDll32.exe Shell32.dll,Control_RunDLL hotplug.dll pour afficher la boîte de dialogue Supprimer le périphérique en toute sécurité:

 The Safely Remove Hardware Dialog

13
climenole

Puisqu'il s'agit d'un périphérique de sauvegarde, cela signifie qu'il s'agit d'un périphérique de stockage. Par conséquent, vous pouvez le faire à partir de PowerShell. Il vous suffit de remplacer X: par la lettre de votre choix:

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

Selon cet article 7tutorials , vous pouvez activer le débranchement sans danger en sélectionnant "Retrait rapide". Cela désactivera la mise en cache en écriture par périphérique, dont l'impact sur les performances est "négligeable"? Leurs étapes pour Windows 7 sont ci-dessous.

( Edit ) Selon cet article de howtogeek , vous devez rester prudent lorsque vous définissez "Suppression rapide". Cela désactivera la mise en cache en écriture et évitera ainsi la plupart des problèmes Mais certains programmes peuvent toujours écrire des choses «en direct», jusqu'à ce qu'ils soient explicitement éjectés/supprimés. ( Fin de montage )

Pas:

  • branchez l'appareil dans la clé USB
  • ouvrir le Gestionnaire de périphériques
  • expand lecteurs de disque
  • cliquez avec le bouton droit sur votre lecteur amovible, par exemple. "USB2.0 Clé USB Périphérique."
  • sélectionnez Propriétés
  • cliquez sur l'onglet Politiques
  • activer "Retrait rapide" (désactiver "Meilleures performances")

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

1
Yahoo Serious