Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Cuantas veces me he encontrado con un entorno donde de repente hay que cambiar configuraciones en un montón de VMs, pues bien, gracias a PowerShell y SCVMM es facilísimo realizar estos cambios en muchas VMs a la vez.
En estos ejemplos voy a cambiar las configuraciones en todas las VMs de un host concreto, pero por supuesto podria hacerse en todas las que cumplan una condición concreta o en todas las VMs de un grupo de hosts, etc.
Hay dos maneras de ejecutar un script o comando powershell que use SCVMM:
Desde la consola de SCVMM abriendo la shell:
Desde un script powershell o desde una consola cualquiera importando la snapin de SCVMM
Add-PSSnapin Microsoft.SystemCenter.VirtualMachineManager
get-vmmserver -ComputerName TuServidorSCVMM
(ojo, para poder añadir el snapin tienes que tener instalada la consola de SCVMM)
Y ahora los ejemplos:
Quitar las optimizaciones de red en todas las tarjetas de red de las VMs de un host:
get-vm |where-object {$_.HostName -eq "NombreDelHost"} | get-virtualnetworkadapter |Set-VirtualNetworkAdapter -VMNetworkOptimizationEnabled $False
Configurar todas las VMs de un host para que puedan migrar con live migration a hosts con diferente procesador:
get-vm |where-object {$_.HostName -eq "NombreDelHost"} | set-vm -LimitCPUForMigration $True
Este ejemplo es especialmente útil por que puedes fácilmente modificarlo para que cambie el centro de coste, la ram o cualquier otro parametro de las VMs.
Para saber como se llama una propiedad para poder utilizarla en tus comandos puedes simplemente usar el comando get-vm NombreVM para ver todos los nombres de propiedades y sus valores concretos para la VM especificada.