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

Eliminar el dispositivo USB desde la línea de comandos

Estoy construyendo un script de copia de seguridad para Windows 7, y la última acción que quiero que realice es “eliminar” de forma segura la unidad USB en la que está haciendo la copia de seguridad. Tengo la impresión de que al conectar la unidad en el mismo_ puerto USB todo el tiempo se mantendrá el mismo DEV_ID (corrígeme si me equivoco). Con una línea de comandos (o PowerShell), ¿cómo puedo decirle a Windows para eliminar de forma segura el hardware de forma automática sin la entrada del usuario?

Sólo como un marcador de posición, otros sistemas operativos que pueden tener una manera de hacer esto sería genial saber también.

Respuestas (6)

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

Además del RemoveDrive de Uwe Sieber mencionado en la otra respuesta, hay un montón de utilidades que pueden lograr esto. A continuación una pequeña lista:

  • USB Disk Ejector es principalmente una utilidad basada en la interfaz gráfica de usuario, pero puede utilizarse igualmente desde la línea de comandos para expulsar la unidad desde la que se está ejecutando el programa, o cualquier unidad especificando la letra de la unidad / el nombre (parcial) de la unidad / el punto de montaje, etc. Es gratuito y de código abierto.

  • USB Safely Remove no es gratuito pero es una utilidad de eliminación de discos con esteroides, con muchas características avanzadas , incluyendo por supuesto soporte de línea de comandos . Zentimo es su hermano mayor, con incluso más características .

  • El propio DevCon de Microsoft es la versión de línea de comandos del Administrador de Dispositivos. Además de la versión original de la era Win2K/XP disponible en la página KB, hay versiones más recientes (tanto de 32 como de 64 bits) disponibles en varias fuentes de MS como se menciona en este artículo Dónde encontrar DevCon.exe . DevCon.exe para Windows 7 (y probablemente también para Windows 8) se puede encontrar enterrado en el correspondiente Kit de controladores de Windows (WDK) , como se menciona en este hilo (que también contiene enlaces de descarga al ejecutable extraído ).

Alguien preguntó ¿Existe un comando del prompt del DOS (cmd.exe de Win7) para expulsar una unidad de disco duro? “ que lamentablemente fue cerrado como un duplicado de este hilo. Sin embargo, la pregunta se refería a la expulsión de las unidades USB, mientras que en el Windows Recovery Console / System Recovery Command Prompt , por lo que es poco probable que cualquiera de las utilidades anteriores ayudará. En tal situación, el siguiente método utilizando Diskpart debería funcionar:

  1. Escriba diskpart y espere al prompt de diskpart (DISKPART>)

  2. Escriba list volume Escriba select volume <number>

  3. Anote cuidadosamente el número de volumen de la unidad USB (utilice las propiedades de la lista, como la letra de la unidad, la etiqueta, el tipo y el tamaño para obtener ayuda)

  4. Escriba <number>, donde remove all dismount es el número de volumen anotado anteriormente

  5. Escriba exit

  6. Escriba 0x6& para salir de Diskpart

Ahora debería poder extraer su unidad USB de forma segura sin temor a perder datos.

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

RemoveDrive me ha servido en el pasado

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

Para responder a esta pregunta… No necesitas cosas de terceros.

Con una línea de comandos (o PowerShell), ¿cómo puedo decirle a Windows que elimine el hardware de forma segura y automática sin la intervención del usuario?

Ejecute este comando: RunDll32.exe shell32.dll,Control_RunDLL hotplug.dllpara que aparezca el cuadro de diálogo Safely Remove Hardware:

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

Dado que es un dispositivo de copia de seguridad, significa que es un dispositivo de almacenamiento, por lo tanto se puede hacer desde powershell - sólo reemplazar X: con su letra de unidad deseada:

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

Según este artículo de 7tutorials , puedes habilitar la desconexión segura configurando “Eliminación rápida”. Esto deshabilitará el almacenamiento en caché de escritura por dispositivo, cuyo impacto en el rendimiento es “insignificante”? Sus pasos para Windows 7 son los siguientes.

( Editar ) Según este artículo de howtogeek , aún debe tener cuidado al configurar “Eliminación rápida”. Esto deshabilitará el caché de escritura, y por lo tanto evitará la mayoría de los problemas. Pero algunos programas pueden seguir escribiendo cosas ‘en vivo’, hasta que sean explícitamente expulsados/eliminados. ( Final de edición )

Pasos:

  • conecte el dispositivo en la unidad USB
  • abra el Administrador de Dispositivos
  • expanda Unidades de Disco
  • haga clic con el botón derecho en su unidad extraíble, por ejemplo, “Dispositivo USB2.0 Flash Disk USB”.
  • seleccione Propiedades
  • haga clic en la pestaña Políticas
  • active “Eliminación rápida” (desactive “Mejor rendimiento”)

( Edit ) Tenga en cuenta que necesita utilizar el Administrador de dispositivos para cambiar la configuración, no se puede hacer desde el Explorador de archivos. (Al menos en mi edición de Windows 10).

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

No pude encontrar un comando interno (gracias MS), ni un solo script por ahí funcionó tampoco, quitar la letra es una forma pobre de hacer la expulsión, la forma interactiva tampoco es genial, y odio usar herramientas de terceros. En mi caso, usando algo que está en mi disco desde hace 20 años: el comando interno Microsoft Windows Sysinternals ayuda al caso:

sync -e x:
  • borra la unidad usb
  • expulsa la unidad usb
  • mantiene la letra
  • no distorsiona el árbol USB

en caso de bloqueos, usa Sysinternals handle o procexp para averiguarlo.