Comandos Powershell para gestionar máquinas virtuales de Hyper-V

Comandos PowerShell para gestionar máquinas virtuales de Hyper-V

Compartir

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

Imagen. Visualización de los módulos de Hyper-V sin formato
Imagen. Visualización de los módulos de Hyper-V sin formato

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

Imagen. Visualización de los módulos de Hyper-V en formato de tabla
Imagen. Visualización de los módulos de Hyper-V en formato de tabla

En formato de lista:

# Get-Command -Module hyper-v | Format-List

Imagen. Visualización de los módulos de Hyper-V en formato de lista
Imagen. Visualización de los módulos de Hyper-V en formato de lista

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

Imagen. Visualización de los módulos de Hyper-V en ventana emergente
Imagen. Visualización de los módulos de Hyper-V en ventana emergente

 

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

Imagen. Actualización de la ayuda de PowerShell con el comando Update-Help
Imagen. Actualización de la ayuda de PowerShell con el comando 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.

Imagen. Consulta de la ayuda de Get-VM
Imagen. Consulta de la ayuda de Get-VM

 

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

Imagen. Listado de las máquinas virtuales disponibles en el servidor de Hyper-V con Powershell
Imagen. Listado de las máquinas virtuales disponibles en el servidor de Hyper-V

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’}

Imagen. Listado de las máquinas virtuales encendidas y apagadas en el servidor de Hyper-V con Powershell
Imagen. Listado de las máquinas virtuales encendidas y apagadas en el servidor de Hyper-V

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.
Imagen. Mostrando una VM en el servidor de Hyper-V en función del nombre con Powershell
Imagen. Mostrando una máquina virtual en el servidor de Hyper-V en función del nombre

 

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

Imagen. Encendido de una VM de Hyper-V mediante PowerShell
Imagen. Encendido de una VM de Hyper-V mediante PowerShell

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

Imagen. Encendido de máquinas virtuales de Hyper-V mediante PowerShell
Imagen. Encendido de máquinas virtuales de Hyper-V mediante PowerShell

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!

Categorías:Cloud y sistemas

Otros posts que te pueden interesar

23 de abril de 2024
Acompáñanos en este artículo en el que trataremos de ver cómo evaluar riesgos y amenazas en la pyme. Uno
20 de febrero de 2024
Acompáñanos en este artículo en el que trataremos uno de esos “pains” a los que se enfrenta toda pyme,
15 de febrero de 2024
Acompáñanos y descubre qué es y por qué necesitamos Disaster Recovery. La creciente dependencia de todas las organizaciones de

Rellena el formulario y nuestro equipo de Sales contactará contigo lo antes posible.

growth@jotelulu.com  |  +34 911 333 712  |  jotelulu.com 

Puedes darte de baja de estas comunicaciones en cualquier momento.  Consulta nuestra Política de privacidad.