Como desmontar um VHD via linha de comando no Windows 10

8

Eu preciso desmontar um VHD com um script em lote no Windows 10. A única solução que encontrei on-line foi direcionada ao Windows 7 e ao Diskpart. Existem outras ferramentas de linha de comando nativas do Windows disponíveis que possam fazer o trabalho?

    
por Zerobinary99 29.08.2015 / 22:37

3 respostas

6

Como não encontrei uma maneira de confiar apenas nas ferramentas de linha de comando instaladas pelo MS, listarei as soluções de terceiros.

WinApiExec

WinApiExec permite que o usuário chame a API do Windows a partir da linha de comando. O executável de 32 bits tem apenas 3.5 KB (x64: 5.5KB) e, portanto, é ridiculamente pequeno, apresentando o mínimo de sobrecarga possível.

winapiexec.exe virtdisk.dll@OpenVirtualDisk $a:2,0 "C:\Example Path\Test.vhd" 262144 0 0 $b:4 , virtdisk.dll@DetachVirtualDisk $$:7@0 0 0

vMount

vMount suporta algumas funções relacionadas a VHD. Seu tamanho (x86: 432KB; x64: 2,53MB) é bastante grande para simplesmente chamar WinApi, então não é uma solução para o meu cenário, mas pode ser útil para outras pessoas.

vmount detach \.\PhysicalDriveX

DiskPart

Para completar, o DiskPart também será mencionado. Ele suporta uma grande quantidade de recursos relacionados ao disco, mas possui uma maneira bastante lenta de automatizar a entrada do usuário necessária para fins de script. É também a única ferramenta na lista que ficará presa em um loop se você acidentalmente executar o script sem direitos elevados.

Salve as duas linhas a seguir em um arquivo de texto:

vdisk file="C:\Example Path\Test.vhd"
detach vdisk

Agora, o Dism pode analisar o arquivo de texto como uma forma de arquivo de resposta autônomo:

DISKPART /s C:\Path_to\Name_Of_Textfile.txt
    
por 31.08.2015 / 22:21
3

Você pode montar e desmontar o vhd / vhdx usando o Windows 10 PowerShell nativo:

Import-module hyper-v
Dismount-VHD -Path 'c:\my.vhd'

Do cmd / bat:

powershell -command "Import-module hyper-v; Dismount-VHD -Path 'c:\my.vhd'"

Em ambos os casos, você deve usar um prompt elevado (Executar como administrador).

Outra coisa a notar é que você precisa ativar o recurso do Hyper-V primeiro .

    
por 02.03.2017 / 16:35
1

Esta é uma resposta expandida: (Você deve ser capaz de descobrir como desmontar o VHD)

Como montar e desmontar automaticamente arquivos VHD na inicialização / desligamento.

As coisas parecem ter mudado um pouco no Windows 10.

Primeiro, devo dizer que estou montando um VHD armazenado em um servidor de arquivos Linux, montado em SMB.

Segundo, muito importante, é que se você não desanexar o disco após a reinicialização, quando você tentar anexá-lo novamente, ele diz "O arquivo está em uso e não pode ser acessado".

Portanto, precisamos de automount e de desmontar. A desmontagem provou ser um pouco mais complicada, já que eu não posso simplesmente colocá-la na pasta de inicialização. Você precisa usar a Política de Grupo. Além disso, quando executado como um script "shutdown / startup", ele correu para o início, você precisa executá-lo em "Logon / Logoff"

Eu tenho 4 arquivos em C:\mount

mount.cmd

@ECHO OFF

DISKPART /s C:\mount\mount.txt

umount.cmd

@ECHO OFF

DISKPART /s C:\mount\umount.txt

umount.txt

select vdisk file="\192.168.1.255\Blizzard.vhdx"
detach vdisk

mount.txt

select vdisk file="\192.168.1.255\Blizzard.vhdx"
attach vdisk

Agora, no início, digite / run gpedit.msc e adicione os scripts ao logon / logoff

    
por 02.01.2017 / 07:09