В этой статье мы покажем, как с помощью DISM и PowerShell узнать, какие образы Windows (версии, издания, сборки, языковые пакеты) хранятся в файлах ISO или WIM. Если в имени ISO-файла не указаны версия и сборка, трудно понять, какая версия Windows находится внутри. Тогда будет проще смонтировать ISO-файл с установочным образом Windows и получить эту информацию из файла install.wim
файла.
Щелкните правой кнопкой мыши образ ISO и выберите Монтировать.
Вы увидите окно с содержимым виртуального диска, на который смонтирован ISO-образ Windows. Откройте окно Источники каталог и найдите установочный файл с образом Windows. Файл называется установить и может иметь одно из следующих расширений:
install.wim
install.esd
install.swm
Нажмите и удерживайте SHIFT, щелкните правой кнопкой мыши файл install.xxx и скопируйте путь к файлу, выбрав Копировать как путь.
Запустите командную строку от имени администратора и выполните следующую команду (в качестве пути к файлу используйте путь из буфера обмена):
DISM /Get-WimInfo /WimFile:"D:\sources\install.esd"
Вы увидите список редакций (Education, Home, Enterprise, Pro и т. д.), доступных в этом ISO-образе Windows. В нашем примере вы можете установить 8 различных редакций Windows из этого образа. У каждой редакции есть индекс, с помощью которого можно получить подробную информацию об образе.
Чтобы получить информацию о версии (сборке) Windows и доступных языках в файле WIM/ESD в образе с индексом 6
, выполните приведенную ниже команду:
DISM /Get-WimInfo /WimFile:"D:\sources\install.esd" /index:6
В нашем примере мы выяснили, что это Windows 10 2004 Professional (Version: 10.0.19041) с английским (en-US) языковым пакетом, доступным в установочном образе под индексом 6.
Вы также можете получить всю информацию о версиях и изданиях Windows в ISO-файле с помощью простого сценария PowerShell.
Укажите путь к ISO-файлу:
$imagePath = "C:\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 Evaluation.