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-DiskImagezum 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 -PassThruFlag 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 foreachSchleife 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-DiskImageaktualisiere den Status des DiskImage-Objekts mit dem Befehl. Dadurch wird die AttachedEigenschaft aktualisiert . Die StorageTypeEigenschaft gibt an, ob die Datei entsprechend ihrer Dateierweiterung eine ISO- oder eine VHD-Datei ist.
Die StorageTypevon einer VHD ist 2, wobei eine ISO 1 zurückgibt. Hier ist die Ausgabe von $UbuntuISO:

Dies ist die Ausgabe $tempnach dem Mounten einer VHD: ( Mount-DiskImagekann auch VHDs mounten!)

Beachten Sie, dass die Attachedobige Eigenschaft Falsetrotz des Mount-DiskImageBefehls ohne Probleme ausgeführt wird.
Beachten Sie, dass die $UbuntuISOVariable 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 -ImagePathSchalter 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-DiskImagekorrekte Schreibweise (Nein kbei Abmelden).
PowerShell Dismount-DiskImage \"C:\AbsolutePathTo\Image.iso\"
PowerShell Mount-DiskImage \"%CD%\Image.iso\"