Eliminar dispositivo USB de la línea de comando

Eliminar dispositivo USB de la línea de comando

Estoy creando un script de copia de seguridad para Windows 7 y la última acción que quiero que realice es "quitar" de forma segura la unidad USB en la que se está realizando la copia de seguridad. Tengo la impresión de que conectar el disco almismoEl puerto USB mantendrá siempre el mismo DEV_ID (corríjame si me equivoco). Con una línea de comando (o PowerShell), ¿cómo puedo decirle a Windows que elimine el hardware de forma segura y automática sin la intervención del usuario?

Solo como marcador de posición, también sería bueno conocer otros sistemas operativos que puedan tener una forma de hacer esto.

Respuesta1

Quitar unidadme ha servido bien en el pasado

Respuesta2

Además de Uwe SieberQuitar unidadComo se menciona en la otra respuesta, hay una gran cantidad de utilidades que pueden lograr esto. A continuación una pequeña lista:

  • Eyector de disco USBes principalmente una utilidad basada en GUI, pero se puede usar igualmente bien desde la línea de comandos para expulsar la unidad desde la que se ejecuta el programa, o cualquier unidad especificando la letra de la unidad/nombre de la unidad (parcial)/punto de montaje, etc. Gratis y abierto fuente.

    Eyector de disco USB

  • Quitar USB de forma segurano es gratuito, pero es una utilidad de eliminación de discos con esteroides, con muchascaracterísticas avanzadas, incluyendo por supuestosoporte de línea de comando.zentimoes su hermano mayor, conincluso más características.

    Quitar USB de forma segura

  • propio de microsoftDevCones 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 de KB, hay versiones más recientes (tanto de 32 como de 64 bits) disponibles en varias fuentes de MS, como se menciona en esteDónde encontrar DevCon.exeartículo. DevCon.exe para Windows 7 (y probablemente también para Windows 8) se puede encontrar escondido en el archivo correspondiente.Kit de controladores de Windows (WDK), como se menciona eneste hilo(que también contiene enlaces de descarga alejecutable extraído).

    devcon status *o devcon hwids *o devcon findall =usb(para una lista más compacta) debería indicarle el ID de hardware del dispositivo. Por ejemplo:

    USB\VID_0781&PID_7113\0001162825
    Nombre:
    El controlador del dispositivo de almacenamiento masivo USB se está ejecutando.

    Luego puede intentar eliminar el dispositivo con devcon remove "USB\VID_0781&PID_7113"(se permiten comodines como *, pero tenga cuidado o podría terminar eliminando algo completamente distinto).


Alguien preguntó "¿Existe un comando de DOS (cmd.exe de Win7) para expulsar una memoria USB?" que lamentablemente se cerró como un duplicado de este hilo. Sin embargo, la pregunta era sobre expulsar unidades USB mientras se estaba en elConsola de recuperación de Windows/Símbolo del sistema de recuperación del sistema, por lo que es poco probable que alguna de las utilidades anteriores ayude. En tal situación, el siguiente método usandoParte del discoDeberia trabajar:

  1. Escriba diskparty espere el mensaje diskpart ( DISKPART>)

  2. Tipolist volume

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

  4. Tipo select volume <number>, ¿dónde <number>está el número de volumen indicado arriba?

    Parte del disco

  5. Tiporemove all dismount

  6. Escriba exitpara salir de Diskpart

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

Respuesta3

para responder aestepregunta... No necesitas material 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 intervención del usuario?

Ejecute este comando: RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll para abrir el cuadro de diálogo Quitar hardware con seguridad:

El cuadro de diálogo Quitar hardware de forma segura

Respuesta4

No pude encontrar un comando interno (gracias MS), ni un solo script funcionó tampoco, eliminar la letra es una mala manera de expulsar, la forma interactiva tampoco es buena y odio usar herramientas de terceros. En mi caso, usar algo que llevo manejando desde hace 20 años: el sistema internoComponentes internos del sistema Microsoft Windowsayuda al caso:

sync -e x:
  • descarga la unidad USB
  • expulsa la unidad USB
  • guarda la carta
  • no distorsiona el árbol USB

en caso de cerraduras, utilice Sysinternalsmanejaroprocexpdescubrir.

información relacionada