Da ich keinen Weg gefunden habe, mich ausschließlich auf MS-installierte Befehlszeilentools zu verlassen, liste ich Lösungen von Drittanbietern auf.
WinApiExec
Mit WinApiExec kann der Benutzer die Windows-API von der Befehlszeile aus aufrufen. Die ausführbare 32-Bit-Datei hat eine Größe von nur 3,5 KB (x64: 5,5 KB) und ist daher lächerlich klein, so dass möglichst wenig Overhead entsteht.
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 unterstützt einige Funktionen, die sich auf VHD beziehen. Seine Größe (x86: 432KB; x64: 2.53MB) ist für das Aufrufen von WinApi ziemlich groß. Es ist also keine Lösung für mein Szenario, kann aber für andere Leute nützlich sein.
vmount detach \\.\PhysicalDriveX
DiskPart
Der Vollständigkeit halber sollte auch DiskPart erwähnt werden. Es unterstützt eine Vielzahl von auf Festplatten bezogenen Funktionen, hat jedoch einen eher schleppenden Weg, die ansonsten erforderlichen Benutzereingaben für Skriptzwecke zu automatisieren. Es ist auch das einzige Tool auf der Liste, das in einer Schleife gefangen wird, wenn Sie das Skript versehentlich ohne erhöhte Rechte ausführen.
Speichern Sie die folgenden zwei Zeilen in einer Textdatei:
vdisk file="C:\Example Path\Test.vhd" detach vdisk
Jetzt kann Dism die Textdatei als eine Form der unbeaufsichtigten Antwortdatei analysieren:
DISKPART /s C:\Path_to\Name_Of_Textfile.txt