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