В этой статье рассмотрим, как с помощью DISM и PowerShell разобраться, какие образы Windows (версии, разрядности, редакции, языки) хранятся в ISO или WIM файлах. И если в имени ISO файла не указана версия и билд, то сложно понять какая версия Windows находится внутри. В этом случае проще всего придется смонтировать ISO файл с установочным образом Windows и получить данные из установочного файла install.wim.
Щелкните по ISO образу правой клавишей и выберите Mount.
Перед вами откроется окно содержимого виртуального диска, в который смонтирован ISO образ Windows. Перейдите в каталог Sources и найдите установочный файл с образом Windows. Файл называется install и может иметь одно из следующих расширений:
-
install.wim
-
install.esd
-
install.swm
Зажмите на клавиатуре Shift, щелкните по файлу install.xxx правой кнопкой мыши и скопируйте путь к файлу, выбрав Copy as path.
Откройте командную строку с правами администратора и выполните команду (в качестве пути к файлу используйте путь из буфера обмена):
DISM /Get-WimInfo /WimFile:"D:\sources\install.esd"
Перед вами появится список редакций (Education, Home, Enterprise, Pro и т.д.), доступных для установки из этого ISO образа Windows. В нашем примере из этого образа можно установить 5 разных редакций Windows. У каждой редакции есть индекс, по которому можно получить информацию об этом образе.
Чтобы получить информацию о версии (билде) и доступных языках Windows в WIM/ESD файле в редакции с индексом 1, выполните:
dism /Get-WimInfo /WimFile:"D:\sources\install.esd" /index:1
В нашем примере вы определили, что это Windows 10 2004 Education (Version: 10.0.19041), в установочном образе доступны русская (ru-RU) и английские (en-US) версии.
Также вы можете получить всю информацию о версиях и редакциях Windows в установочном ISO файле с помощью простого PowerShell скрипта, который все делает сам.
Задайте путь к ISO файлу:
$imagePath = "C:\Distr\iso\WindowsServer_RTM.iso"
Смонтируйте ISO образ:
$Report = @()
$beforeMount = (Get-Volume).DriveLetter
$mountResult = Mount-DiskImage $imagePath -PassThru
$afterMount = (Get-Volume).DriveLetter
$ImageDrive= "$(($afterMount -join '').replace(($beforeMount -join ''), '')):"
Вы получили букву диска, куда смонтирован образ (буква назначилась автоматически, если нет смотрите как это починить здесь).
Теперь получим информацию о версиях Windows в файле install.wim или install.esd:
$WinImages = Get-windowsimage -ImagePath "$ImageDrive\sources\install.wim”
Foreach ($WinImage in $WinImages)
{
$curImage=Get-WindowsImage -ImagePath "$ImageDrive\sources\install.wim” -Index $WinImage.ImageIndex
$objImage = [PSCustomObject]@{
ImageIndex = $curImage.ImageIndex
ImageName = $curImage.ImageName
Version = $curImage.Version
Languages=$curImage.Languages
Architecture =$curImage.Architecture
}
$Report += $objImage
}
Отмонтировать ISO образ:
Dismount-DiskImage $mountResult.ImagePath
Можно вывести результат в таблицу Out-GridView:
$Report | Out-GridView
В результате мы получили красивый список образов Windows в ISO файле и их версии. В нашем примере в ISO образе оказался Windows Server 2022 RTM.