Si estás utilizando la plataforma de virtualización Hyper-V de Microsoft para ejecutar máquinas virtuales, probablemente estés familiarizado con el uso de Hyper-V Manager. ¿Pero sabías que puedes hacer más en menos tiempo con el módulo Hyper-V PowerShell?
En este tutorial, aprenderás cómo gestionar las máquinas virtuales de Hyper-V con PowerShell, incluyendo la creación, eliminación, ¡y también te sumergirás en instantáneas de máquinas virtuales!
Prerrequisitos
Para este tutorial, necesitarás lo siguiente:
- A Windows client to connect to a remote Hyper-V host. This tutorial uses Windows 10 Pro.
- A Hyper-V host with PowerShell Remoting enabled. The tutorial’s Hyper-V host is named HYPER and is in a workgroup but an Active-Directory joined client and host will work as well.
- A user account on the Hyper-V host in the local administrators group or in the Hyper-V Administrators group. This tutorial will use an account called localadmin.
Conexión a un Host de Hyper-V Remoto
Para trabajar con Hyper-V en PowerShell, debes poder comunicarte con el host de Hyper-V de alguna manera. Puedes hacerlo localmente ejecutando los cmdlets de PowerShell de Hyper-V proporcionando el nombre del host de Hyper-V, o puedes usar PowerShell Remoting para conectarte al host de Hyper-V en sí.
En este tutorial, realizarás una conexión persistente al host de Hyper-V y ejecutarás los comandos directamente en el host de Hyper-V.
1. Abre PowerShell en tu ordenador local.
2. Ejecute el cmdlet Enter-PSSession
proporcionando el nombre de host de su host remoto Hyper-V para el parámetro ComputerName
. Esta acción crea una sesión interactiva y le permite ejecutar comandos de forma interactiva en el host remoto Hyper-V.
Si su cliente y el host Hyper-V son miembros del mismo dominio de Active Directory, no tiene que usar el parámetro
Credential
.
3. A continuación, se le solicitará un nombre de usuario y una contraseña para conectarse al host Hyper-V. Este nombre de usuario y contraseña serán de un usuario administrativo local en el host remoto. Una vez conectado, debería ver que su indicador de PowerShell ha cambiado para mostrar el nombre de host del host Hyper-V.
¡Ahora está listo para comenzar a ejecutar comandos!
Creación de máquinas virtuales Hyper-V con PowerShell
Suponiendo que ahora esté conectado a su host Hyper-V mediante PowerShell Remoting, comencemos a ejecutar comandos creando una máquina virtual Hyper-V.
Creación de una VM simple
Mientras esté en su sesión de PSRemoting conectada al host remoto Hyper-V:
Ejecute el cmdlet New-VM
para crear una nueva VM. Al crear una VM con el cmdlet New-VM
, tiene muchas opciones diferentes para elegir cómo crearla.
1. En este ejemplo a continuación, el tutorial está creando una VM con:
- A name of MyVM (
HYPER
) - 512MB de RAM (
MemoryStartupBytes
)

Creación de una VM basada en otros atributos de VM
A veces necesitas crear una VM con atributos similares a otra VM. Puedes hacerlo asignando varios atributos de la VM a variables y luego usar esas variables al crear la nueva VM. Como ejemplo:
1. Ejecuta Get-VM
para consultar los atributos de una VM existente y asigna la salida a una variable como se muestra a continuación.
2. Ejecuta el cmdlet Get-VMMemory
proporcionando el nombre de la VM para recopilar los atributos (en este caso, la memoria) y asigna el valor de la memoria a una variable.
3. A continuación, crea una nueva VM con el cmdlet New-VM
proporcionando el Nombre
, la generación de VM (Generación
) usando la propiedad Generación
de la otra VM, y la cantidad de memoria obtenida de la otra VM.

Listado de VMs existentes con PowerShell
Ahora que tienes al menos dos VMs creadas en el host de Hyper-V, veamos cómo enumerar las VMs creadas. Para hacerlo:
1. Ejecuta el cmdlet Get-VM
por sí solo. Cuando lo ejecutas sin parámetros, Get-VM
consulta al host de Hyper-V para todas las VMs existentes. Get-VM

2. Quizás solo quieras buscar una sola VM. En ese caso, utiliza el parámetro -Name
. El siguiente comando está consultando a Hyper-V para la VM creada anteriormente llamada HYPER_old
. Get-VM -Name HYPER_old

Luego, tal vez necesites encontrar todas las VMs que están en un Estado
específico. No hay problema. Para hacer eso, ejecuta Get-VM
, que consulta todas las VMs pero redirige la salida al cmdlet Where-Object
.
En el ejemplo siguiente, el tubo ‘|’ limita la salida de Get-VM
solo a aquellos objetos VM con un Estado
de Ejecución
. Get-VM -VMName HYPER_old | Where-Object {$_.State -eq 'Running'}

Inicio y detención de VMs
En este momento, es probable que la VM creada anteriormente esté detenida. Cambiemos eso iniciándola y luego aprendiendo también cómo detener VMs.
En la sesión de PowerShell del host remoto de Hyper-V:
1. Ejecute el cmdlet Start-VM
proporcionándole el nombre (Nombre
) de la VM creada anteriormente con el parámetro -Name

Ahora que la VM está iniciada, deténgala usando el cmdlet Stop-VM
proporcionando el nombre de la VM con el parámetro Nombre
.
Tan pronto como ejecute el comando anterior, verá que la VM se apaga como se muestra en la captura de pantalla a continuación;

Modificación de VMs de Hyper-V
Las VMs no siempre permanecen iguales. Tal vez necesite aumentar los recursos de CPU, o la VM se queda constantemente sin memoria. En ese caso, el cmdlet Set-VM
es su amigo.
Como ejemplo de modificación de VMs existentes, en la sesión de PowerShell del host remoto de Hyper-V:
Ejecuta el cmdlet Set-VM
para apagar automáticamente la VM HYPER_old que está en ejecución actualmente. Utiliza el parámetro Name
para especificar la VM que deseas configurar y especifica Shutdown
como el valor para el parámetro AutomaticStopAction
para asegurar que la VM se apague automáticamente correctamente cuando se apague el host de Hyper-V.
Guardando Máquinas Virtuales de Hyper-V
En la sesión remota de PowerShell del host de Hyper-V, es posible que necesites guardar la VM que creaste para preservar el estado de la memoria de la VM para su uso posterior. Para hacer esto, utiliza el cmdlet Save-VM
con el parámetro Name
especificando el nombre de la VM que deseas guardar.
Ten en cuenta que la VM que deseas guardar debe estar en estado de ejecución.

Administración de Puntos de Control de VM de Hyper-V
Si necesitas guardar el estado existente de una VM antes de realizar cambios o revertir cambios en una VM, debes aprender acerca de los puntos de control. Los puntos de control son una manera práctica de guardar rápidamente el estado de disco y memoria de cualquier VM de Hyper-V.
Mientras estás en tu host de Hyper-V, ejecuta el cmdlet Checkpoint-VM
, proporcionando el nombre de la VM para guardar y un nombre para el punto de control.
El nombre del parámetro,
SnapshotName
, aún hace referencia a la antigua terminología utilizada en Hyper-V 2012. Un snapshot es lo mismo que un punto de control.

Una vez que haya creado un punto de control, puede usar el cmdlet Get-VMSnapshot
para recuperar todos los puntos de control almacenados en el host de Hyper-V. A continuación, puede ver que la VM HYPER_old tiene tres puntos de control.

Conclusión
Si ha trabajado a través de todas las demostraciones en este tutorial, está bien encaminado para administrar las VM de Hyper-V con PowerShell. ¡Ahora debería tener el conocimiento necesario para administrar 1, 10 o incluso 100 VMs!
¿Qué tipo de tareas cree que puede automatizar ahora con PowerShell y Hyper-V?