
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.
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.
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 *
oudevcon hwids *
oudevcon 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:
Digite
diskpart
e aguarde o prompt do diskpart (DISKPART>
)Tipo
list volume
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)
Digite
select volume <number>
, onde<number>
está o número do volume indicado acimaTipo
remove all dismount
Digite
exit
para 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:
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.