, , , ,

Add ISO DVD Drive to a Hyper-V VM using PowerShell

Add ISO DVD Drive to a Hyper-V VM using PowerShell

Hyper-V offers the capability to add an ISO image to a virtual CD/DVD drive and you can use Hyper-V Manager to do that, or you can also use PowerShell. Here is how you can add an ISO to a Hyper-V virtual machine (VM) using PowerShell. There are two ways of doing it if you already have a virtual DVD drive attached to the VM or if you need to add a virtual DVD drive.

This works with Hyper-V on Windows Server and on Windows 10.

Attach ISO to an existing DVD Drive on a Hyper-V VM using PowerShell

To attach an ISO file to an existing virtual DVD drive on a Hyper-V virtual machine (VM) using PowerShell, you can use the following command:

Set-VMDvdDrive -VMName Windows10 -Path "C:\Users\thoma\Downloads\ubuntu-18.04.4-live-server-amd64.iso"

Add ISO file and DVD Drive to a Hyper-V VM using PowerShell

If your Hyper-V virtual machine doesn’t have a virtual DVD drive attached to it, you can add a virtual DVD drive including the ISO file with the following PowerShell command:

Add-VMDvdDrive -VMName "Windows10" -Path "C:\Users\thoma\Downloads\ubuntu-18.04.4-live-server-amd64.iso"

If you run this command on a virtual machine, which already has a virtual DVD drive attached, you will simply add a second virtual DVD drive to this machine. You can find more information on the Add-VMDvdDrive cmdlet on Microsoft Docs.

Conclusion

If you want to build some automation around Hyper-V on Windows 10 or on Windows Server, PowerShell is the way to go. If you have any questions feel free to leave a comment.

2 responses

  1. Tolga Balcı Avatar

    Great one Thomas, right to the point.
    Just one note though. It seems that the cmdlet is expecting a controller number. Running the command without specifying the controller resulted in this error (DVD was already added to the SCSI controller before running the cmdlet):

    PS C:\Users\tolga> Set-VMDvdDrive -VMName “RHEL 8.4” -Path “”C:\Users\tolga\Downloads\Software.iso””
    Set-VMDvdDrive : Cannot bind parameter ‘ControllerNumber’. Cannot convert value “C:\Users\tolga\Downloads\Software.iso” to type “System.Int32”. Error: “Input string was not in a correct format.”
    At line:1 char:50
    + … 1″ -Path “”C:\Users\tolga\Downloads\Softwar …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : InvalidArgument: (:) [Set-VMDvdDrive], ParameterBindingException
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.HyperV.PowerShell.Commands.SetVMDvdDrive

    Despite the error, when I switched to the Hyper-V Manager and checked the VM, I could see the ISO file mounted under VM Settings > SCSI Controller > DVD Drive.

    After the error, I also tried the same cmdlet above by setting the -ControllerLocation 1 but the error did not change.

    Any ideas?

  2. Tolga Balcı Avatar

    OK – Solved after getting DVD device list with Get-VMDvdDrive and using the -ControllerNumber and -ControllerLocation options.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.