Wie kann ich in Windows 8 ISO-Images von PowerShell ohne Programme von Drittanbietern aktivieren und deaktivieren?
Die ursprüngliche Überarbeitung dieser Frage hat mich gefragt, ob es möglich ist, ein ISO über PowerShell in Windows 8 zu mounten.
Wie kann ich in Windows 8 ISO-Images von PowerShell ohne Programme von Drittanbietern aktivieren und deaktivieren?
Die ursprüngliche Überarbeitung dieser Frage hat mich gefragt, ob es möglich ist, ein ISO über PowerShell in Windows 8 zu mounten.
Antworten:
Wenn Sie an einer Eingabeaufforderung sitzen und ein ISO bereitstellen 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 anzugeben, die Sie bereitstellen möchten. Wenn Sie fertig sind, lassen Sie das letzte Feld leer und drücken Sie Enter.
Tada! Es ist montiert:
Führen Sie Dismount-DiskImage
zum Trennen der Bereitstellung einer ISO von PowerShell die folgenden Schritte aus. Wenn Sie nur den Laufwerksbuchstaben und nicht den Image-Pfad kennen, verwenden Sie diesen Befehl:
Get-Volume [Drive Letter] | Get-DiskImage | Dismount-DiskImage
Mit diesem Befehl wird das angegebene Laufwerk abgerufen, das Festplatten-Image gesucht und die Bereitstellung aufgehoben.
Sie können das -PassThru
Flag auch zum Speichern von Daten verwenden, die an den Befehl übergeben werden. Lassen Sie uns ein paar ISOs mounten, ihre Laufwerksbuchstaben anzeigen, eine Datei auf einem der Laufwerke ausführen und dann die Bereitstellung aller ISOs aufheben.
Hängen Sie die ISOs ein
$MountedISOs=Mount-DiskImage -PassThru D:\Downloads\Ubuntu.iso,D:\Downloads\Windows8.iso,D:\Downloads\Server2012.iso
Zeigen Sie Volume-Informationen für jede ISO an, die mit einer foreach
Schleife montiert wurde
foreach($iso in $MountedISOs){Get-Volume -DiskImage $iso}
Liste J Laufwerk
ls J:\
Öffne einen Ordner
start wubi.exe
Verwenden Sie den folgenden Befehl, um die Bereitstellung der ISOs aufzuheben:
Dismount-DiskImage $MountedISOs.ImagePath
Um ein einfaches Skript zu erstellen, das überprüft, ob die ISO angehängt ist und tatsächlich eine ISO ist (im Gegensatz zu einer VHD), verwende ich gerne -PassThru
, um das Objekt vorübergehend zu speichern, und Get-DiskImage
aktualisiere den Status des DiskImage-Objekts mit dem Befehl. Dadurch wird die Attached
Eigenschaft aktualisiert . Die StorageType
Eigenschaft gibt an, ob die Datei entsprechend ihrer Dateierweiterung eine ISO- oder eine VHD-Datei ist.
Die StorageType
von einer VHD ist 2, wobei eine ISO 1 zurückgibt. Hier ist die Ausgabe von $UbuntuISO
:
Dies ist die Ausgabe $temp
nach dem Mounten einer VHD: ( Mount-DiskImage
kann auch VHDs mounten!)
Beachten Sie, dass die Attached
obige Eigenschaft False
trotz des Mount-DiskImage
Befehls ohne Probleme ausgeführt wird.
Beachten Sie, dass die $UbuntuISO
Variable auch nicht aktualisiert wird:
C:\>explorer.exe imagepath
, hier brauchen wir kein PS, aber zum Abmounten brauchen wir das PS.
Wenn Sie dies über die Befehlszeile tun möchten, benötigen Sie normalerweise eine nicht interaktive Methode. Sie möchten den -ImagePath
Schalter verwenden, um dies zu tun.
Der Befehl lautet also:
PowerShell Mount-DiskImage -ImagePath \"C:\AbsolutePathTo\Image.iso\"
Denken Sie daran, dass Sie die Anführungszeichen umgehen müssen, wenn Sie den absoluten Pfad (für Leerzeichen und andere Sonderzeichen) in Anführungszeichen setzen.
Denken Sie daran, ein ISO-Image zu zitieren, um es zu entfernen:
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, da die |
Pipe die Befehlszeile veranlasst, zu denken, dass er sich im Befehlszeilenkontext befindet, und nicht Argumente zu PowerShell
(denen PowerShell automatisch hinzufügt) zu einem einzigen Befehl verketten).
Achten Sie auch auf die Dismount-DiskImage
korrekte Schreibweise (Nein k
bei Abmelden).
PowerShell Dismount-DiskImage \"C:\AbsolutePathTo\Image.iso\"
PowerShell Mount-DiskImage \"%CD%\Image.iso\"