Skip to content

VirtuallyThatGuy

Anything VMware , PowerCLI, PowerShell, Automation and some Windows

Menu
  • Home
  • PowerCLI
  • VMware
  • Automation
  • Windows
  • About
Menu

Script: How to check VMs with ISO or CD-Drive Connected Using PowerShell and PowerCLI – VirtuallyThatGuy

Posted on November 4, 2021December 19, 2025 by VirtuallyThatGuy

This is a quick blog post on how to report on VMs connected with ISO or CD Drive. Refer to my previous post on how remove ISO or cd-drive from VMs in your vmware estate.

## VMware Find VMs with ISO Connected 

param
(
   [Parameter(Mandatory=$true)]
   [VMware.VimAutomation.ViCore.Types.V1.Inventory.Cluster]
   $vParam
);

[Array] $vmList = @( Get-VM -Location $vParam | Sort Name );

foreach ( $vmItem in $vmList )
{
    [Array] $vmCdDriveList = @( Get-CDDrive -VM $vmItem );

    foreach ( $vmCdDriveItem in $vmCdDriveList )
    {
        [String] $insertedElement = "";
        [String] $connectionType  = "";

        switch ( $vmCdDriveItem )
        {
            { $_.IsoPath      } { $insertedElement = $_.IsoPath;      $connectionType = "ISO";           break; }
            { $_.HostDevice   } { $insertedElement = $_.HostDevice;   $connectionType = "Host Device";   break; }
            { $_.RemoteDevice } { $insertedElement = $_.RemoteDevice; $connectionType = "Remote Device"; break; }
            default             { $insertedElement = "None";          $connectionType = "Client Device"; break; }
        }

        $output = New-Object -TypeName PSObject;

        $output | Add-Member -MemberType NoteProperty -Name "VM"                -Value $vmItem
        $output | Add-Member -MemberType NoteProperty -Name "CD-Drive"          -Value $vmCdDriveItem.Name;
        $output | Add-Member -MemberType NoteProperty -Name "Connection"        -Value $connectionType;
        $output | Add-Member -MemberType NoteProperty -Name "Inserted"          -Value $insertedElement;
        $output | Add-Member -MemberType NoteProperty -Name "Connected"         -Value $vmCdDriveItem.ConnectionState.Connected;
        $output | Add-Member -MemberType NoteProperty -Name "StartConnected"    -Value $vmCdDriveItem.ConnectionState.StartConnected;
        $output | Add-Member -MemberType NoteProperty -Name "AllowGuestControl" -Value $vmCdDriveItem.ConnectionState.AllowGuestControl;
        $output;
    }
}

Leave a Reply Cancel reply

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

Recent Posts

  • vROps: Management Pack Troubleshooting
  • Windows AD {Active Directory} (PowerShell) samples
  • Migrate VMs Between vCentres Using Powershell or PowerCLI
  • Set VM Tools to Update Automatically on VM Reboot using powershell
  • Windows Administrator Must Have Powershell Commands

Recent Comments

  • JB on Script: How to get VM with Tag Assignment and export results to csv using PowerCLI or Powershell
  • DL on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • 360coolp on How to change VCSA root password and bypass BAD PASSWORD: it is based on a dictionary word for vCenter VCSA root account warning
  • Yogesh on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy
  • VirtuallyThatGuy on ESXi 8.x, 7.x, 6.x Service sfcbd-watchdog Not Running / Fails to Start – VirtuallyThatGuy

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017

Categories

  • Automation
  • PowerCLI
  • VMware
  • Windows
© 2026 VirtuallyThatGuy | Powered by Superbs Personal Blog theme