從命令提示字元掛載 ISO(僅限 Windows 8/2012 及更高版本)

從命令提示字元掛載 ISO(僅限 Windows 8/2012 及更高版本)

如何在不使用第 3 方程式的情況下在 Windows 8 中從 PowerShell 裝載和卸載 ISO 映像?

問題原來的修訂我想知道是否可以在 Windows 8 中透過 PowerShell 掛載 ISO。

答案1

從命令提示字元掛載 ISO(僅限 Windows 8/2012 及更高版本)

如果您在命令提示字元下需要安裝 ISO,請執行以下命令:

PowerShell Mount-DiskImage

這將會呼叫 PowerShell cmdlet。系統將提示您輸入要安裝的 ISO 的路徑。完成後,將最後一項留空並按Enter

運行 Mount-DiskImage cmdlet

田田!它已安裝:

田田!它已安裝 - “具有可移動儲存的裝置”

解除安裝 ISO

若要從 PowerShell 卸載 ISO,請執行Dismount-DiskImage並依照指示操作。如果您只知道磁碟機號,而不知道影像路徑,請使用下列命令:

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

此命令將取得您指定的驅動器,找到磁碟映像並將其卸載。

卸載 ISO 後的“具有可移動儲存的裝置”

掛載多個 ISO 並顯示磁碟機號

您也可以使用該-PassThru標誌來儲存傳遞給命令的資料。讓我們掛載一些 ISO,顯示它們的磁碟機號,在其中一個磁碟機上執行一個文件,然後卸載所有 ISO。

安裝 ISO

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

foreach顯示使用循環安裝的每個 ISO 的捲信息

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

列出 J 驅動器

 ls J:\

開啟文件

 start wubi.exe

foreach/Get-Volume 和 ls 的輸出

若要卸載 ISO,請使用以下指令:

 Dismount-DiskImage $MountedISOs.ImagePath

測試 ISO

為了建立一個簡單的腳本來檢查 ISO 是否已附加並且實際上是一個 ISO(相對於 VHD),我喜歡用它-PassThru來臨時儲存對象,並使用命令Get-DiskImage來更新 DiskImage 對象的狀態。這將更新該Attached屬性。該StorageType屬性會根據檔案副檔名告訴您該檔案是 ISO 還是 VHD。

使用 <code>-PassThru</code> 和 <code>Get-DiskImage</code>

VHD的StorageType是 2,ISO 將回傳 1 $UbuntuISO
這是 <code>$UbuntuISO</code> 的輸出

$temp這是掛載VHD後的輸出:(Mount-DiskImage也可以掛載VHD!)
安裝 VHD 後 <code>$temp</code> 的輸出

請注意,儘管命令運行順利,但Attached上面的屬性是。FalseMount-DiskImage

請記住,該$UbuntuISO變數也不會保持更新:
<code>$UbuntuISO</code> 變數不會保持更新


Technet:掛載磁碟映像

Technet:Dismount-DiskImage

答案2

通常,如果您想透過命令列執行此操作,則需要非互動式方法。您將需要使用-ImagePath開關來執行此操作。

因此,正確的命令是:

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

請記住,如果引用絕對路徑(用於包含空格和其他特殊字元),則需要對引號進行轉義。

要卸載 iso 映像,請記住引用它:

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

請注意,在第一種情況下我們不必引用命令,但在第二種情況下我們需要引用命令,因為管道|會導致命令列認為它在命令列上下文中,而不是添加參數PowerShell(PowerShell 自動連接成單個命令)。

還要確保拼字Dismount-DiskImage正確(Dismount 中沒有k)。

相關內容