Contents

PowerCLI one liners - Listar ISOs montadas y desmontarlas

Algo frecuente cuando administramos una infraestructura VMware vSphere es encontrarnos con VMs con ISOs de nuestros datastores montadas que ya no son necesarias. Este problema se vuelve aún más habitual cuando muchas manos están tocando la misma infraestructura. Si bien podemos ir VM por VM comprobando si esto pasa, es más interesante valernos de PowerCLI para listar ISOs montadas (o directamente desmontarlas) periódicamente mendiante la ejecución programada de scripts de PowerShell.

Listar ISOs montadas con PowerCLI

1
Get-VM | Get-CDDrive | Where-Object {$_.IsoPath -ne $null} | Select Parent,IsoPath 

Como siempre, vamos a revisar cada parte del one-liner:

  • Get-VM: Obtenemos las VMs del entorno.
  • Get-CDDrive: De cada VM pasada a través del pipe obtenemos las unidades de CD.
  • Where-Object {$_.IsoPath -ne $null}: Obtenemos las unidades de CD cuyo path de ISO no esté vacío.
  • Select Parent,IsoPath: Mostramos el nombre de la VM y el path a la ISO montada.

Si programamos la ejecución de un script de PowerShell con el contenido de este one-liner podemos obtener un reporting automatizado de las ISOs montadas en nuestro entorno.

Desmontar ISOs montadas con PowerCLI

Si queremos ir un paso más allá y no nos vale solo con reportar las ISOs tenemos la posibilidad de, también con un one-liner, desmontar de forma masiva todas las ISOs del entorno.

Aviso: Hay que ir con cuidado con la siguiente línea por si alguna VM está activamente trabajando con la ISO en cuestión, ya que podría llevar a algún tipo de corrupcion del Sistema Operativo invitado.

1
Get-VM | Get-CDDrive | where {$_.IsoPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$False

Como podréis ver únicamente cambia la parte de después del último pipe, donde con Set-CDDrive configuramos la unidad de CD para que no utilice ninguna ISO.

Combinando estos one-liners con el envío de correo desde PowerShell y las tareas programadas podremos luchar contra el descontrol que tan fácilmente puede producirse en infraestructuras grandes de VMware vSphere.