Remova o dispositivo USB da linha de comando

Remova o dispositivo USB da linha de comando

Estou construindo um script de backup para o Windows 7, e a última ação que desejo executar é "remover" com segurança a unidade USB na qual está sendo feito o backup. Tenho a impressão de que conectar a unidade aomesmoA porta USB sempre manterá o mesmo DEV_ID (corrija-me se estiver errado). Com uma linha de comando (ou PowerShell), como posso dizer ao Windows para remover o hardware com segurança e automaticamente, sem a intervenção do usuário?

Assim como um espaço reservado, seria ótimo conhecer outros sistemas operacionais que possam ter uma maneira de fazer isso.

Responder1

RemoverDriveme serviu bem no passado

Responder2

Além de Uwe SieberRemoverDrivemencionado na outra resposta, há vários utilitários que podem fazer isso. Segue uma pequena lista:

  • Ejetor de disco USBé principalmente um utilitário baseado em GUI, mas pode ser usado igualmente bem na linha de comando para ejetar a unidade a partir da qual o programa está sendo executado ou qualquer unidade especificando a letra da unidade / nome da unidade (parcial) / ponto de montagem etc. fonte.

    Ejetor de disco USB

  • Remover USB com segurançanão é gratuito, mas é um utilitário de remoção de disco com esteróides, com muitoscaracterísticas avançadas, incluindo, é clarosuporte de linha de comando.Zêntimoé seu irmão maior, comaté mais características.

    Remover USB com segurança

  • Próprio da MicrosoftDevConé a versão de linha de comando do Gerenciador de Dispositivos. Além da versão original da era Win2K/XP disponível na página KB, existem versões mais recentes (32 e 64 bits) disponíveis em várias fontes MS, conforme mencionado nesteOnde encontrar DevCon.exeartigo. DevCon.exe para Windows 7 (e provavelmente também para Windows 8) pode ser encontrado enterrado no arquivo apropriadoKit de driver do Windows (WDK), como mencionado emeste tópico(que também contém links para download doexecutável extraído).

    devcon status *ou devcon hwids *ou devcon findall =usb(para uma listagem mais compacta) deve informar o ID de hardware do dispositivo. Por exemplo:

    USB\VID_0781&PID_7113\0001162825
    Nome:
    O driver do dispositivo de armazenamento em massa USB está em execução.

    Você pode então tentar remover o dispositivo com devcon remove "USB\VID_0781&PID_7113"(caracteres curinga como * são permitidos, mas tenha cuidado ou você pode acabar removendo algo totalmente diferente!)


Alguém perguntou "Existe um comando do prompt do DOS (cmd.exe do Win7) para ejetar um pen drive?"que infelizmente foi fechado como uma duplicata deste tópico. No entanto, a questão era sobre ejetar unidades USB enquanto estava noConsole de recuperação do Windows/Prompt de comando de recuperação do sistema, portanto, é improvável que algum dos utilitários acima ajude. Em tal situação, o seguinte método usandoDiskpartDeveria trabalhar:

  1. Digite diskparte aguarde o prompt do diskpart ( DISKPART>)

  2. Tipolist volume

  3. Anote o número do volume da unidade USB com cuidado (use as propriedades listadas, como letra da unidade, rótulo, tipo e tamanho para obter ajuda)

  4. Digite select volume <number>, onde <number>está o número do volume indicado acima

    Diskpart

  5. Tiporemove all dismount

  6. Digite exitpara sair do Diskpart

Agora você poderá remover sua unidade USB com segurança, sem medo de perda de dados.

Responder3

Para responder aessepergunta... Você não precisa de coisas de terceiros.

Com uma linha de comando (ou PowerShell), como posso dizer ao Windows para remover o hardware com segurança automaticamente, sem a intervenção do usuário?

Execute este comando: RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll para abrir a caixa de diálogo Remover hardware com segurança:

A caixa de diálogo Remover hardware com segurança

Responder4

Não foi possível encontrar um comando interno (obrigado MS), nem um único script funcionou, remover a carta é uma maneira ruim de ejetar, a maneira interativa também não é legal e odeio usar ferramentas de terceiros. No meu caso, usando algo que está no meu disco há 20 anos: o internoSistemas internos do Microsoft Windowsajuda o caso:

sync -e x:
  • libera unidade USB
  • ejeta unidade USB
  • guarda carta
  • não distorce a árvore USB

em caso de bloqueios, use Sysinternalslidarouprocexpdescobrir.

informação relacionada