Descubre los comandos PowerShell para gestionar máquinas virtuales de Hyper-V y así poder ahorrar tiempo en la administración de tu infraestructura virtualizada.
Hyper-V es uno de los hipervisores más ampliamente usados en el mundo, y es en parte gracias a simplicidad de su uso, que suaviza la curva de la transición del modelo tradicional a un modelo basado en virtualización, además de su estabilidad, su escalabilidad y sus ventajas de licenciamiento frente a otras plataformas de virtualización.
Y como no podía ser de otra manera, queremos enseñaros algunos comandos básicos de PowerShell que os ayudarán a gestionar las máquinas virtuales, incluso en caso de no haber trabajado nunca con esta maravillosa consola de Microsoft.
Hablaremos de comandos sencillos para:
- Mostrar los comandos relacionados con Hyper-V.
- Actualizar la ayuda de los comandos de PowerShell.
- Utilizar la ayuda de PowerShell.
- Listar las máquinas virtuales disponibles en el servidor.
- Arranque y parada de máquinas virtuales mediante PowerShell.
Con lo que ya podréis operar lo básico dentro de Hyper-V, haciendo el resto desde la consola gráfica… Por el momento, ya que ¡prometemos volver con más!
Comandos para gestionar tus máquinas virtuales Hyper-v Server con PowerShell
Mostrar los comandos relacionados con Hyper-V:
Lo primero que debemos conocer es de qué comandos o cmdlets de Hyper-V disponemos en nuestro equipo. Para ello podemos usar el comando “Get-Command -Module hyper-v” que mostrará todos en un listado más o menos ordenado.
# Get-Command -Module hyper-v
También podemos solicitar la información ordenándola de distintas maneras, como por ejemplo en formato tabla:
# Get-Command -Module hyper-v | Format-Table
En formato de lista:
# Get-Command -Module hyper-v | Format-List
En un formato de ventana emergente con una presentación muy similar a las ventanas emergentes de programas de Java u otros programas:
# Get-Command -Module hyper-v | Out-GridView
Actualizar la ayuda de los comandos de PowerShell:
Sinceramente, creo que una de las primeras cosas que debemos hacer cuando trabajamos con cualquier aplicación, sistema o servicio, es actualizar todo lo actualizable, y esto incluye la ayuda.
En este caso, todo el sistema de ayuda de PowerShell va “encadenado”, por lo que, por suerte, solo deberemos lanzar un comando de actualización, que es el comando “Update-Help”, además sin poner ningún modificador:
# Update-Help
Utilizar la ayuda de PowerShell:
A continuación, dado que vamos a trabajar con máquinas virtuales (VM desde ahora), debemos saber consultar la ayuda de los comandos.
Para consultarla usaremos el comando “Get-Help <Comando de PowerShell>”, donde “<Comando de PowerShell>” debe ser sustituido por el comando del que queremos aprender más.
Por ejemplo, como vamos a usar los comandos “Get-VM”, por lo que el comando para solicitar la ayuda sería:
# Get-Help Get-VM
NOTA: En caso de no haber ejecutado primero la actualización de la ayuda de PowerShell, puede que se realice la actualización al solicitar el uso de ayudas.
Listar las máquinas virtuales disponibles en el servidor de Hyper-V:
Ahora vamos a ver cómo listar las máquinas virtuales disponibles dentro de un servidor de Hyper-V.
Para empezar listaremos las máquinas sin importarnos el estado de estas, para ello lanzaremos el comando “Get-VM” sin modificadores:
# Get-VM
Asimismo, también podemos mostrar solo las máquinas virtuales que tengan un estado en concreto, como por ejemplo estar en ejecución o parada.
Get-VM | where {$_.State -eq ‘Running’}
Get-VM | where {$_.State -eq ‘Off’}
También podremos hacer búsquedas por nombre de máquina virtual, usando para ello el comando siguiente y usando la característica “$_.Name”:
Get-VM | where {$_.Name -eq ‘<Nombre>’}
Donde:
- <Nombre> será el nombre de la VM que estamos queriendo listar.
Arranque y parada de máquinas virtuales de HYper-V mediante PowerShell:
Tras poder ver la ayuda, actualizar y poder ver la información sobre las máquinas, es hora de empezar a trabajar con ellas, y nada mejor para empezar a trabajar con ellas que poder iniciarlas y detenerlas.
Para ello usaremos los nada originales comandos de “Start-VM” y “Stop-VM”, a los cuales habrá que pasarle los nombres de las VM que queremos detener.
# Start-VM -Name <Nombre>
Y
# Stop-VM -Name <Nombre>
Que si por ejemplo queremos usarlo para detener la máquina “Nacho” debemos usar de la siguiente manera:
# Stop-VM -Name Nacho
Por otro lado, podremos hacer la unión de varios comandos para listar las máquinas que estén detenidas y arrancarlas, usando la siguiente composición:
# Get-VM | where {$_.State -eq ‘Off’} | Start-VM
Donde primero listamos las máquinas existentes en el Hyper-V mediante el comando “Get-VM”. Esa salida, se canaliza hacia el siguiente comando con el “|”. Hecho esto, se captura y se listan únicamente las que están detenidas con el modificador “where {$_.State -eq ‘Off’}” que se vuelve a canalizar con un nuevo “|” y se pasa al comando “Start-VM” que arrancará las máquinas listadas.
De la misma manera, podremos hacer la parada de las máquinas encendidas:
# Get-VM | where {$_.State -eq ‘Running’} | Stop-VM
Con esto ya tenemos los primeros comandos para gestionar nuestra infraestructura de virtualización con PowerShell; y no van a ser los últimos, ya que iremos publicando nueva información sobre la gestión de servicios con PowerShell y por supuesto volveremos a hablar de Hyper-V.
Conclusiones:
Tal y como has podido ver en el artículo comandos Powershell para gestionar máquinas virtuales de Hyper-V es muy sencillo ahorrar tiempo y esfuerzo en la administración de tu infraestructura virtualizada mediante el hipervisor de Microsoft.
Si estás interesado en este tema y quieres hacer pruebas en tu equipo de sobremesa puedes visitar el tutorial Cómo instalar Hyper-V en Windows 10.
Además, puedes consultar otros tutoriales y artículos relacionados con Hyper-V.
¡Gracias por acompañarnos!