Módulo Hyper-V PowerShell: cómo hacer más cosas
Si está utilizando la plataforma de virtualización Hyper-V de Microsoft para ejecutar máquinas virtuales, probablemente esté familiarizado con el uso de Hyper-V Manager. ¿Pero sabía que puede hacer más en menos tiempo con el módulo Hyper-V PowerShell?
En este tutorial, aprenderá cómo administrar máquinas virtuales Hyper-V con PowerShell, incluida la creación y eliminación, y también accederá a instantáneas de máquinas virtuales.
Requisitos previos
Para este tutorial, necesitará lo siguiente que se enumera a continuación:
- Un cliente de Windows para conectarse a un host Hyper-V remoto. Este tutorial utiliza Windows 10 Pro.
- Un host Hyper-V con PowerShell Remoting habilitado. El host Hyper-V del tutorial se llama HYPER y está en un grupo de trabajo, pero un cliente y un host unidos a Active Directory también funcionarán.
- Una cuenta de usuario en el host de Hyper-V en el grupo de administradores locales o en el grupo de administradores de Hyper-V. Este tutorial utilizará una cuenta llamada localadmin.
Conexión a un host Hyper-V remoto
Para trabajar con Hyper-V en PowerShell, debe poder comunicarse de alguna manera con el host de Hyper-V. Puede hacerlo localmente ejecutando los cmdlets de Hyper-V PowerShell que proporcionan el nombre del host de Hyper-V o puede usar PowerShell Remoting para conectarse al host de Hyper-V.
En este tutorial, realizará una conexión persistente al host Hyper-V y ejecutará los comandos en el host Hyper-V.
1. Abra PowerShell en su computadora local.
2. Ejecute el cmdlet Enter-PSSession proporcionando el nombre de host de su host Hyper-V remoto para el parámetro ComputerName. Esta acción crea una sesión interactiva y le permite ejecutar comandos de forma interactiva en el host Hyper-V remoto.
Enter-PSSession -ComputerName HYPER -Credential (Get-Credential)Si su cliente y su host Hyper-V son miembros del mismo dominio de Active Directory, no es necesario que utilice el parámetro
Credencial.
3. Luego 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á un usuario administrativo local en el host remoto. Una vez conectado, debería ver que el mensaje 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.
Creando una máquina virtual simple
Mientras está en su sesión de PSRemoting conectado al host remoto de Hyper-V:
Ejecute el cmdlet New-VM para crear una nueva VM. Al crear una máquina virtual con el cmdlet New-VM, tiene muchas opciones diferentes para elegir sobre cómo crearla.
1. En el siguiente ejemplo, el tutorial crea una máquina virtual con:
- Un nombre de MyVM (
HYPER) - 512 MB de RAM (
MemoryStartupBytes)
New-VM -Name "HYPER" -MemoryStartupBytes 512MBCrear una máquina virtual basada en otros atributos de la máquina virtual
A veces es necesario crear una máquina virtual con atributos similares a los de otra máquina virtual. Puede hacerlo, pero asigne varios atributos de VM a las variables y luego use esas variables al crear la nueva VM. Como ejemplo:
1. Ejecute Get-VM para consultar los atributos de una VM existente asignando la salida a una variable como se muestra a continuación.
$VMold = Get-VM "HYPER_old"2. Ejecute el cmdlet Get-VMMemory que proporciona el nombre de la máquina virtual para recopilar atributos (en este caso, memoria) y asigne el valor de la memoria a una variable.
$memory = (Get-VMMemory -VMName $VMold.name).Startup3. A continuación, cree una nueva máquina virtual con el cmdlet New-VM que proporcione el Nombre, generación de VM (Generación) usando Generación Propiedad de la otra VM y cantidad de memoria del valor obtenido de la otra VM.
New-VM -Name "newVM" -Generation $VMold.Generation -MemoryStartupBytes $memoryListado de máquinas virtuales existentes con PowerShell
Ahora que tiene al menos dos máquinas virtuales creadas en el host Hyper-V, exploremos cómo enumerar las máquinas virtuales creadas. Para hacer eso:
1. Ejecute el cmdlet Get-VM por sí solo. Cuando se ejecuta sin parámetros, Get-VM consulta el host Hyper-V para todas las máquinas virtuales existentes.
Get-VM2. Quizás desee buscar solo una máquina virtual. En ese caso, utilice el parámetro -Name. El siguiente comando de código consulta a Hyper-V para la máquina virtual creada anteriormente llamada HYPER_old.
Get-VM -Name HYPER_old
A continuación, tal vez necesite encontrar todas las máquinas virtuales que se encuentran en un Estado específico. Ningún problema. Para hacerlo, ejecute Get-VM, que consulta todas las máquinas virtuales pero canaliza la salida al cmdlet Where-Object.
En el siguiente ejemplo, la tubería '|' limita la salida de Get-VM solo a aquellos objetos de VM con un State de Running.
Get-VM -VMName HYPER_old | Where-Object {$_.State -eq 'Running'}Iniciar y detener máquinas virtuales
En este momento, la VM creada anteriormente probablemente esté detenida. Cambiemos eso iniciándolo y luego aprendiendo cómo detener las máquinas virtuales también.
En la sesión de PowerShell del host remoto de Hyper-V:
1. Ejecute el cmdlet Start-VM proporcionándole el nombre (Name) de la VM creada anteriormente con el parámetro -Name.
Start-VM -Name NewVMAhora que la máquina virtual está iniciada, deténgala usando el cmdlet Stop-VM que proporciona el nombre de la máquina virtual con el parámetro Name.
Stop-VM -Name HYPER_oldTan pronto como ejecute el comando anterior, verá que la VM se apaga como se ve en la captura de pantalla a continuación;
Modificación de máquinas virtuales Hyper-V
Las máquinas virtuales no siempre son las mismas. Tal vez necesite aumentar los recursos de la CPU o la VM se esté quedando sin memoria constantemente. En ese caso, el cmdlet Set-VM es su amigo.
Como ejemplo de modificación de máquinas virtuales existentes, en la sesión de PowerShell del host Hyper-V remoto:
Ejecute el cmdlet Set-VM para apagar automáticamente la VM HYPER_old que se está ejecutando actualmente. Utilice el parámetro Name para especificar la VM que desea configurar y especifique Shutdown como valor para el parámetro AutomaticStopAction para garantizar que la VM se apague automáticamente. correctamente cuando se apaga el host Hyper-V.
Set-VM -Name HYPER_old -AutomaticStopAction ShutdownGuardar máquinas virtuales Hyper-V
En la sesión de PowerShell del host Hyper-V remoto, es posible que necesite guardar la VM que cree para preservar el estado de la memoria de la VM para su uso posterior. Para hacer esto, use el cmdlet Save-VM con el parámetro Name que especifica el nombre de la VM que desea guardar.
Tenga en cuenta que la máquina virtual que desea guardar debe estar en estado En ejecución.
Save-VM -Name HYPER_oldAdministrar puntos de control de VM Hyper-V
Si necesita guardar el estado existente de una máquina virtual antes de realizar cambios o revertir los cambios de la máquina virtual, debe obtener información sobre los puntos de control. Los puntos de control son una forma práctica de guardar rápidamente el estado del disco y la memoria de cualquier máquina virtual Hyper-V.
Mientras esté en su host Hyper-V, ejecute 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,
SnapshotNametodavía hace referencia a la antigua terminología utilizada en Hyper-V 2012. Una instantánea es lo mismo que un punto de control.
Checkpoint-VM -Name HYPER_old -SnapshotName MyVMSnapshotUna vez que haya creado un punto de control, puede usar el cmdlet Get-VMSnapshot para recuperar todas las instantáneas almacenadas en el host Hyper-V. Puede ver a continuación que la VM HYPER_old tiene tres puntos de control.
Get-VMSnapshot -VMName HYPER_oldConclusión
Si ha trabajado en todas las demostraciones de este tutorial, está en el buen camino para administrar máquinas virtuales Hyper-V con PowerShell. ¡Ahora debería tener los conocimientos necesarios para gestionar 1, 10 o incluso 100 máquinas virtuales!
¿Qué tipo de tareas crees que puedes automatizar ahora con PowerShell y Hyper-V?









