{How-To} desmontar todos los VirtualDVD de nuestras VM de un saque!

A menudo en la utilización de nuestras VM nos van quedando los VirtualDVD insertados con alguna imagen .iso y eso desparramado por toda nuestra infraestructura, como hacer para ir sacando estos medios virtuales de las diferentes VM, una forma seria desde VMM entrar una por una, entrar a las propiedades, Hardware Configuration, Virtual DVD drive y seleccionar no media….

Pero… cuando tenemos unas 80 VM… se torna un poco tedioso… ahí es donde vale la pena ponerse un ratito y armar algún pequeño script de PoweShell (digo esto mientras meto la mano en el bolsillo cual MacGyver buscando la Victorinox) y de un saque setear el VirtualDVD de nuestras VM en “No Media”

Lo que deberiamos de hacer es ejecutar una Ventana de PowerShell e incluir el PSSnapin de Virtual Machine Manager o directamente ejecutar “Windows PowerShell – Virtual Machine Manager”

luego ejecutar los siguientes cmdlets

Get-VM | where { $_.VMHost -like “patron”} | ForEach-Object {Get-VirtualDVDDrive  -VM $_.Name | Set-VirtualDVDDrive -NoMedia}

Vamos a analizarlo parte por parte para ver su funcionamiento, el primer cmdlet

Get-VM | where { $_.VMhost -kile “patron”} 

lo que hace es seleccionar todas las objetos VM que esten en los hosts (Hyper-V) cuyo nombre coincida con el patron, por ejemplo si nuestra nombenclatura para servidores de Hyper-V es que empiecen con el nombre SRVHyperV deberiamos poner: Get-VM | where { $_.VMhost -kile “SRVHyperV*”}

la salida de este cmdlet la redrigimos con pipe ( | ) hacia el siguiente cmdlet en este caso

ForEach-Object{}

este cmdlet lo que hace es para cada uno de los objetos (parametro que recivido desde el cmdlet anterior) ejecuta lo que tiene entre {} en el caso lo que se esta ejecutando es:

Get-VirtualDVDDrive  -VM $_.Name | Set-VirtualDVDDrive -NoMedia

lo cual tambien se divide en dos cmdlets

Get-VirtualDVDDrive  -VM $_.Name

el cual obtiene el objeto del VirtualDVDDrive del la VM haciendo referencia a esta con la variable $_ (variable con la que se obtiene el objeto desde el que se ha llamado a este) y la propiedad Name de dicho objeto. y luego redirigiendo con pipe el objeto VirtualDVDDrive hacia el siguiente cmdlet

Set-VirtualDVDDrive -NoMedia

Este cmdlet lo que realiza es setear el objeto VirtualDVDDrive, pasandole el modificador -NoMedia le indicamos que lo que queremos realizar es que deje configurado el Virtual DVD Drive del Servidor como si no tubiese ningun medio insertado.

En la siguiente imagen pueden ver como quedaría el cmdlet completo.

Todo esto puede resultar abrumador a primera vista, pero con el uso produce un gran alivio, ya que nos permite realizar en pocos pasos tareas que de otra forma serian muy monótonas.

 

Instalando SCVMM 2008R2 SP1 Hotfix RollUp

Según vemos en el blog oficial de System Center Virtual Machine Manager el 12 de Julio salio una actualización (Hotfix Rollup) que resuelve algunos inconvenientes desde la aparición del SP1 de VMM 2008R2, los inconvenientes que se presentaban son:

  1. Fallo en la migración de Virtual to Virtual (V2V) usando Cluster Shared Volume (CSV)
  2. El Rating de para la ubicacion de VM’s puede aparecer en 0 debido a la configuración de IOPS de disco
  3. Un nodo de Cluster no puede entrar en Mantenimiento debido a un timeout
Nota: Personalmente estaba teniendo problemas con el punto 3
Dicho hotfix puede descargarse desde Microsoft Update o ser instalado usando Windows Update.
Recomiendo instalarlo manualmente ya que de esa forma tenemos control sobre lo que se esta realizando, si en el momento de la instalación se encuentran levantados los servicios de VMM luego de esto sera necesario reiniciar el servidor, con lo que si se quieren ahorrar un reboot bajen los servicios antes de instalar el Hotfix.
Los pasos y comando serian los siguientes:
  • Descargar el Hotfix 
  • Abrir el archivo .cab y extraer el archivo vmmServer64Update.msp
  • abrir un CMD con privilegios elevados
  • detener los servicios de VMM:  net stop VMMAgent && net stop VMMService
  • Insltalar el Hotfix: msiexec /update vmmServer64Update.msp BOOTSTRAPPED=1
  • Iniciar los servicios de VMM: net start VMMService && net start VMMAgent 

Con esto queda aplicado el Hotfix y su VMM puede volver a la normalidad 😉
y podemos gozar nuevamente del poner los equipos en Mainteinance.

Y perdiendo solo algún que otro ping al moverse la VM