.png)
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.
Tada! Es ist montiert:
Ein ISO-Image aushängen
Um ein ISO-Image aus PowerShell zu entfernen, führen Sie es aus Dismount-DiskImage
und 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.
Mounten mehrerer ISOs und Anzeigen von Laufwerksbuchstaben
Sie können das -PassThru
Flag 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 foreach
Schleife gemountete ISO an
foreach($iso in $MountedISOs){Get-Volume -DiskImage $iso}
Liste J-Laufwerk
ls J:\
Öffne einen Ordner
start wubi.exe
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, -PassThru
um das Objekt vorübergehend zu speichern und den Get-DiskImage
Befehl zu verwenden, um den Status des DiskImage-Objekts zu aktualisieren. Dadurch wird die Attached
Eigenschaft aktualisiert. Die StorageType
Eigenschaft gibt anhand der Dateierweiterung an, ob es sich bei der Datei um ein ISO oder eine VHD handelt.
Der StorageType
Wert einer VHD ist 2, während ein ISO 1 zurückgibt. Hier ist die Ausgabe von $UbuntuISO
:
Dies ist die Ausgabe $temp
nach dem Mounten einer VHD: ( Mount-DiskImage
VHDs können auch gemountet werden!)
Beachten Sie, dass die Attached
obige Eigenschaft lautet False
, obwohl der Mount-DiskImage
Befehl reibungslos ausgeführt wird.
Bedenken Sie, dass die $UbuntuISO
Variable auch nicht aktualisiert bleibt:
Antwort2
Wenn Sie dies über die Befehlszeile tun möchten, benötigen Sie normalerweise eine nicht interaktive Methode. -ImagePath
Dazu 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-DiskImage
richtige Schreibweise (Nein k
in „Dismount“).