Mounten Sie eine ISO-Datei über die Eingabeaufforderung (nur Windows 8/2012 und höher)

Mounten Sie eine ISO-Datei über die Eingabeaufforderung (nur Windows 8/2012 und höher)

Wie kann ich ISO-Images aus PowerShell in Windows 8 ohne Programme von Drittanbietern mounten und demontieren?

DasFragenOriginalRevisionIch frage mich, ob es möglich ist, in Windows 8 eine ISO-Datei über PowerShell zu mounten.

Antwort1

Mounten Sie eine ISO-Datei über die Eingabeaufforderung (nur Windows 8/2012 und höher)

Wenn Sie an einer Eingabeaufforderung sitzen und ein ISO mounten müssen, führen Sie den folgenden Befehl aus:

PowerShell Mount-DiskImage

Dadurch wird ein PowerShell-Cmdlet aufgerufen. Sie werden aufgefordert, den Pfad der ISOs einzugeben, die Sie mounten möchten. Wenn Sie fertig sind, lassen Sie das letzte Feld leer und drücken Sie Enter.

Ausführen des Cmdlets „Mount-DiskImage“

Tada! Es ist montiert:

Tada! Es ist gemountet – „Geräte mit Wechseldatenträger“

Ein ISO-Image aushängen

Um ein ISO-Image aus PowerShell zu entfernen, führen Sie es aus Dismount-DiskImageund folgen Sie der Eingabeaufforderung. Wenn Sie nur den Laufwerksbuchstaben auswendig wissen, aber nicht den Image-Pfad, verwenden Sie diesen Befehl:

Get-Volume [Drive Letter] | Get-DiskImage | Dismount-DiskImage

Dieser Befehl greift auf das angegebene Laufwerk zu, sucht das Disk-Image und trennt es vom Computer.

„Geräte mit Wechseldatenträger“ nach dem Deinstallieren der ISO-Datei

Mounten mehrerer ISOs und Anzeigen von Laufwerksbuchstaben

Sie können das -PassThruFlag auch verwenden, um an den Befehl übergebene Daten zu speichern. Lassen Sie uns einige ISOs mounten, ihre Laufwerksbuchstaben anzeigen, eine Datei auf einem der Laufwerke ausführen und dann alle ISOs demontieren.

Mounten Sie die ISOs

 $MountedISOs=Mount-DiskImage -PassThru D:\Downloads\Ubuntu.iso,D:\Downloads\Windows8.iso,D:\Downloads\Server2012.iso

Zeigen Sie die Datenträgerinformationen für jedes über eine foreachSchleife gemountete ISO an

 foreach($iso in $MountedISOs){Get-Volume -DiskImage $iso}     

Liste J-Laufwerk

 ls J:\

Öffne einen Ordner

 start wubi.exe

Ausgabe von foreach/Get-Volume und ls

Um die ISOs zu trennen, verwenden Sie den folgenden Befehl:

 Dismount-DiskImage $MountedISOs.ImagePath

Testen der ISO

Um ein einfaches Skript zu erstellen, das prüft, ob das ISO angehängt ist und tatsächlich ein ISO (und nicht eine VHD) ist, verwende ich gerne, -PassThruum das Objekt vorübergehend zu speichern und den Get-DiskImageBefehl zu verwenden, um den Status des DiskImage-Objekts zu aktualisieren. Dadurch wird die AttachedEigenschaft aktualisiert. Die StorageTypeEigenschaft gibt anhand der Dateierweiterung an, ob es sich bei der Datei um ein ISO oder eine VHD handelt.

mit <code>-PassThru</code> und <code>Get-DiskImage</code>

Der StorageTypeWert einer VHD ist 2, während ein ISO 1 zurückgibt. Hier ist die Ausgabe von $UbuntuISO:
Hier ist die Ausgabe von <code>$UbuntuISO</code>

Dies ist die Ausgabe $tempnach dem Mounten einer VHD: ( Mount-DiskImageVHDs können auch gemountet werden!)
die Ausgabe von <code>$temp</code> nach dem Mounten einer VHD

Beachten Sie, dass die Attachedobige Eigenschaft lautet False, obwohl der Mount-DiskImageBefehl reibungslos ausgeführt wird.

Bedenken Sie, dass die $UbuntuISOVariable auch nicht aktualisiert bleibt:
die Variable <code>$UbuntuISO</code> bleibt nicht auf dem neuesten Stand


Technet: Mount-DiskImage

Technet: Dismount-DiskImage

Antwort2

Wenn Sie dies über die Befehlszeile tun möchten, benötigen Sie normalerweise eine nicht interaktive Methode. -ImagePathDazu verwenden Sie den Schalter.

Der richtige Befehl lautet also:

PowerShell Mount-DiskImage -ImagePath "C:\AbsolutePathTo\Image.iso"

Denken Sie daran, dass Sie die Anführungszeichen maskieren müssen, wenn Sie den absoluten Pfad in Anführungszeichen setzen (da er Leerzeichen oder andere Sonderzeichen enthält).

Denken Sie beim Aushängen eines ISO-Images daran, es in Zitate zu setzen:

PowerShell "Get-Volume G | Get-DiskImage | Dismount-DiskImage"

Beachten Sie, dass wir den Befehl im ersten Fall nicht in Anführungszeichen setzen mussten, im zweiten Fall jedoch schon, da die |Pipe die Befehlszeile glauben lässt, sie befinde sich im Befehlszeilenkontext und nicht in zusätzlichen Argumenten PowerShell(die PowerShell automatisch zu einem einzigen Befehl zusammenfügt).

Achten Sie außerdem auf die Dismount-DiskImagerichtige Schreibweise (Nein kin „Dismount“).

verwandte Informationen