All modern versions of Windows (Windows 8/Windows Server 2012 and newer) have built-in support for mounting ISO image files. An ISO file is a container file that contains an image of an optical disk with the ISO 9660 file system. Even though optical CD/DVD/Blu-ray drives are almost no longer used, the ISO image format is still very popular for distributing various products. ISO images are most commonly used for the distribution of operating systems (Windows, Linux, etc).
In Windows 10/11 you can mount a file with an ISO image right from the File Explorer. Double-click on your *.ISO file or select Mount from the file’s context menu.
This creates a new virtual CD/DVD drive in Windows to which the image file is mounted (the drive letter is assigned automatically). You can work with files on the virtual ISO image drive as if they were on a normal physical disk (files on the virtual disk are read-only).
To unmount an ISO image, click the virtual drive and select Eject.
You can mount an ISO image file on Windows using PowerShell. Specify the full path to your *.ISO file in the following command:
Mount-DiskImage –ImagePath "D:\Distr\Win_Server_STD_CORE_2022.ISO"
The ISO image was successfully mounted (Attached: True
).
Mount-DiskImage –ImagePath your.iso -StorageType ISO
To get a drive letter assigned to your ISO image, use this command:
Mount-DiskImage –ImagePath "D:\Distr\my.ISO"| Get-Volume
The ISO image is assigned the drive letter F: in this example.
You can also find out the name of the ISO file mounted in the specified virtual CD drive by using the Get-Volume command:
Get-Volume -DriveLetter F| % { Get-DiskImage -DevicePath $($_.Path -replace "\\$")}
Get-Volume
command is part of the built-in PowerShell module for managing disk partitions in Windows.If you want the specific drive letter to be assigned to your ISO file, you may use the PowerShell script below:
$myISO = "D:\Distr\Win_Server_STD_CORE_2022.ISO"
Mount-DiskImage $myISO
$vol = Get-DiskImage $myISO | Get-Volume
$old_drv = $vol.DriveLetter + ':'
$new_drv = 'Y:'
Get-WmiObject -Class Win32_Volume | Where-Object {$_.DriveLetter -eq $old_drv} | Set-WmiInstance -Arguments @{DriveLetter=$new_drv}
Unmount an ISO image file:
Dismount-DiskImage -ImagePath "D:\Distr\Win_Server_STD_CORE_2022.ISO"