Смонтировать ISO из командной строки (только Windows 8/2012 и выше)

Смонтировать ISO из командной строки (только Windows 8/2012 и выше)

Как монтировать и отключать ISO-образы из PowerShell в Windows 8 без сторонних программ?

Этотвопросыоригинальныйпересмотрзаставило меня задуматься, возможно ли смонтировать ISO-образ через PowerShell в Windows 8.

решение1

Смонтировать ISO из командной строки (только Windows 8/2012 и выше)

Если вы работаете в командной строке и вам необходимо смонтировать ISO-образ, выполните следующую команду:

PowerShell Mount-DiskImage

Это вызовет командлет PowerShell. Вам будет предложено указать путь к ISO-образам, которые вы хотите смонтировать. Когда закончите, оставьте последнее поле пустым и нажмите Enter.

запуск командлета Mount-DiskImage

Тада! Он установлен:

Тада! Он смонтирован — «Устройства со съемным хранилищем»

Размонтировать ISO

Чтобы размонтировать ISO из PowerShell, запустите 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

Отображение информации об объеме для каждого ISO-образа, смонтированного с помощью foreachцикла

 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>

Для StorageTypeVHD это 2, тогда как для ISO это будет 1. Вот вывод $UbuntuISO:
Вот вывод <code>$UbuntuISO</code>

Это вывод $tempпосле монтирования VHD: ( Mount-DiskImageможно также монтировать VHD!)
вывод <code>$temp</code> после монтирования VHD

Обратите внимание, что Attachedуказанное выше свойство равно False, несмотря на то, что Mount-DiskImageкоманда выполняется без сбоев.

Имейте в виду, что $UbuntuISOпеременная также не будет обновляться:
переменная <code>$UbuntuISO</code> не обновляется


Technet: Mount-DiskImage

Technet: Размонтировать-DiskImage

решение2

Обычно, если вы хотите сделать это через командную строку, вам нужен неинтерактивный метод. -ImagePathДля этого вам понадобится переключатель.

Таким образом, правильная команда:

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

Помните, что если вы заключаете в кавычки абсолютный путь (содержащий пробелы и другие специальные символы), вам необходимо экранировать кавычки.

Чтобы размонтировать образ ISO, не забудьте заключить его в кавычки:

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

Обратите внимание, что в первом случае нам не пришлось заключать команду в кавычки, но во втором случае мы это делаем, поскольку конвейер |заставит командную строку думать, что она находится в контексте командной строки, а не в дополнительных аргументах PowerShell(которые PowerShell автоматически объединяет в одну команду).

Также убедитесь, что пишете Dismount-DiskImageправильно (нет kв Dismount).

Связанный контент