So lösen Sie eine virtuelle Festplatte über die Befehlszeile in Windows 10

8066
Zerobinary99

Ich muss eine VHD mit einem Stapelskript in Windows 10 aushängen. Die einzige Lösung, die ich online gefunden habe, wurde an Windows 7 gerichtet und betraf Diskpart. Gibt es andere native Windows-Befehlszeilentools, die die Aufgabe erfüllen können?

8
in cmd kann schwierig sein. Ich kenne keine Powershell, aber Powershell tut so viel. Beispielsweise sagen viele Links, dass Powershell tun kann, was Sie wollen http://www.virtualizationadmin.com/kbase/VirtualizationTips/ServerVirtualization/MicrosoftHyper-VTips/Management/how-mount-virtual -hard-disk-file-using-powershell.html und https://technet.microsoft.com/en-us/library/hh848562(v=wps.630).aspx barlop vor 9 Jahren 0
@ barlop Vielen Dank für deinen Kommentar und die Links. Der Batch muss auf einem System ausgeführt werden können, auf dem Powershell nicht installiert ist. Ich fürchte, dies ist keine Option. Zerobinary99 vor 9 Jahren 0
Gibt es einen bestimmten Grund, warum Sie diskpart nicht verwenden möchten? Es kann beispielsweise auf eine nicht interaktive Weise ausgeführt werden, so dass Sie eine Batch-Datei haben könnten, die ein diskpart-Skript in eine Datei script.txt überträgt. Dann wird diskpart / s script.txt verwendet. Hier ein Beispiel für ein diskpart-Skript. https: / /technet.microsoft.com/de-de/library/dn614984.aspx barlop vor 9 Jahren 0
@barlop Ich kenne die diskpart-Lösung und verwende sie derzeit auf einem anderen System. Der, an dem dies arbeiten soll, hat keinen Plattenbereich. Zerobinary99 vor 9 Jahren 0
Ich denke, es wäre schon schwer genug, einen Drittanbieter zu finden, der dies tut. Native Befehle sind ziemlich bekannt, ich bin mir sicher, dass es keine gibt, die es tun, außer diskpart. Es ist fast ein Wunder, dass diskpart es tut. (da diskpart ein so "einfaches" Programm ist wie fdisk, und die Leute neigen dazu, es zu benutzen, ohne die Option zu merken. Die Idee, dass es einen anderen nativen Befehl gibt, der es tun würde, ist fast undenkbar. Wenn Sie eine Batch-Datei einfügen können Kannst du da nicht ein Programm wie Diskpart drauf setzen? barlop vor 9 Jahren 0
Warum wäre das undenkbar? Es ist ein sehr einfaches Programm zum Schreiben, und es gibt eine Vielzahl von Lösungen wie "Dismount-VHD" und "Dismount-DiskImage", beides Befehlszeilen-Tools der Microsoft-Serverreihe. Vmount ist eine Freeware-Lösung von Drittanbietern, aber es ist eine riesige 2,5-MB-ausführbare Datei, die ebenfalls fehlerhaft ist und unter Windows 10 nicht ordnungsgemäß funktioniert. Diskpart unterstützt das Formatieren von Festplatten. Microsoft hat jedoch auch format.exe für die Arbeit ohne diskpart bereitgestellt. Warum sollte es also keine Tools für andere Funktionen geben, z. B. für die vhd-Handhabung? Die Server-Editionen zeigen an, dass es einige davon gibt. Zerobinary99 vor 9 Jahren 0
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/27586/discussion-between-barlop-and-zerobinary99). barlop vor 9 Jahren 0
Es wird keine Diskussion geben. Die unverschämten Behauptungen, die Sie in Ihrer letzten Antwort gemacht haben, beruhten offensichtlich nicht auf Wissen, sondern auf Unwissenheit über das Thema. Ich weiß Ihre Bemühungen zu schätzen, aber wenn Sie nicht in der Lage sind, eine Antwort zu geben, dann sollten Sie nicht unbedingt darauf aus sein, Ihre Lösungen auf mich zu bringen. Ich habe meine Gründe für die genannten Anforderungen. Zerobinary99 vor 9 Jahren 0
Nun, versuchen Sie, neben diskpart native cmd.exe-Methoden zum Mounten einer vhd zu finden. Und wir werden sehen, ob Sie Erfolg haben barlop vor 9 Jahren 0
@barlop Bei der Frage geht es darum, dass * Bilder nicht gemountet werden. Das Mounten ist ganz einfach, wenn Sie einfach den Namen der virtuellen Festplatte in der Batch-Datei aufrufen. Keine Werkzeuge erforderlich ... Zerobinary99 vor 9 Jahren 0

3 Antworten auf die Frage

6
Zerobinary99

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 
3
Anton Krouglov

Sie können vhd / vhdx mithilfe der systemeigenen Windows 10-Powershell bereitstellen und die Bereitstellung aufheben:

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

Von cmd / bat:

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

In beiden Fällen müssen Sie die Eingabeaufforderung mit erhöhtem Befehl (Als Administrator ausführen) verwenden.

Beachten Sie auch, dass Sie zuerst die Hyper-V-Funktion aktivieren müssen .

Zu meinem Kommentar zu meiner Frage: "Der Batch muss auf einem System ausgeführt werden können, auf dem Powershell nicht installiert ist. Ich fürchte, dies ist keine Option." Zerobinary99 vor 7 Jahren 0
Soweit ich weiß, ist Powershell ein wesentlicher Bestandteil von Windows 10 (Sie haben sich nach Windows 10 gefragt), so dass Sie _cannot_ nicht installieren oder deinstallieren können. Die Ausführung kann jedoch auf verschiedene Weise blockiert werden, beispielsweise durch Gruppenrichtlinien. Anton Krouglov vor 7 Jahren 0
Warum hinterfragen Sie die Bedingungen? Es gibt einen Grund für sie. Ich verwende ein Windows Lite ohne Powershell und lehne eine komplette Plattform ab, die ich nicht benötige, wenn mehrere leichtere Optionen verfügbar sind Zerobinary99 vor 7 Jahren 0
Ich habe das ähnliche Problem. Googeln hat deine alte Frage ergeben. Daher kann diese Antwort auch für andere Menschen hilfreich sein. Anton Krouglov vor 7 Jahren 1
Da diese Frage über zwei Jahre alt ist und der Titel in Bezug auf Ihre Anforderung vage ist, hilft diese Antwort vielen anderen Menschen ebenso wie meine erweiterte Antwort. Sie sollten mehr über den Stack-Austausch lesen, um mehr über die Funktionsweise dieser Website und ihre Richtlinien zu erfahren. Diese Art von Antworten sind für die Community @ Zerobinary99 sehr nützlich FreeSoftwareServers vor 6 Jahren 0
Die Anforderung ist nicht vage. Lernen Sie zu lesen und antworten Sie nicht, wenn Sie die Frage nicht verstehen. Ich schlage * Sie * vor, mehr über die Richtlinien der Site zu lesen. Es geht nicht darum, wie nützlich Antworten für die breite Öffentlichkeit sind, sondern ob sie überhaupt zu der Frage passen und Ihre nicht. Ich stimme zu, dass diese Antwort für diejenigen, die Zugang zu Powershell haben, einen gewissen Wert hat. Zerobinary99 vor 6 Jahren 0
1
FreeSoftwareServers

Dies ist eine erweiterte Antwort: (Sie sollten in der Lage sein zu erfahren, wie Sie VHD aufheben können.)

HowTo VHD-Dateien beim Booten / Herunterfahren automatisch einhängen und umhängen.

In Windows 10 scheinen sich die Dinge ein wenig geändert zu haben.

Zunächst sollte ich sagen, dass ich eine auf einem Linux-Dateiserver gespeicherte VHD einhänge und über SMB einhänge.

Zweitens ist es sehr wichtig, dass, wenn Sie die Festplatte nach dem Neustart nicht entfernen, wenn Sie versuchen, sie erneut anzuschließen, die Meldung "Die Datei wird verwendet und kann nicht zugegriffen werden".

Wir brauchen also sowohl Automount als auch Unmount. Das Unmount erwies sich als ein bisschen Trick, da ich es nicht einfach in den Startordner stellen kann. Sie müssen Gruppenrichtlinien verwenden. Wenn es als "Shutdown / Start" -Skript ausgeführt wird, lief es zu früh ab. Sie müssen es unter "Anmelden / Abmelden" ausführen.

Ich habe 4 Dateien in 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 

gpedit.mscGeben Sie jetzt in start / run ein und fügen Sie die Skripts zum Anmelden / Abmelden hinzu

enter image description here

Danke für die Antwort, aber das ist keine Lösung für das Problem. Ich suchte nach einer Batch-kompatiblen Lösung neben der Verwendung von Diskpart. Sie haben im Grunde nur die gleiche Syntax eingefügt, die bereits in meiner Antwort enthalten ist. Zerobinary99 vor 6 Jahren 0
Abgesehen von der Verwendung der eingebauten Windows-Funktion ohne die Verwendung von Tools von Drittanbietern? Scheint oximoronic. FreeSoftwareServers vor 6 Jahren 0
Ich habe nach * anderen * nativen Windows-Funktionen gefragt. Daran ist nichts Oxymoronic. Scheint mir, dass Sie Probleme mit dem allgemeinen Verständnis haben. Zerobinary99 vor 6 Jahren 0