Cómo administrar máquinas virtuales Hyper-V en PowerShell
¿Sabía que puede automatizar completamente sus máquinas virtuales Hyper-V en Windows Server? Siga esta guía detallada para aprender cómo desbloquear el poder de la automatización de Hyper-V con Windows PowerShell.
Cómo hacer que Hyper-V funcione en Windows Server con PowerShell
Antes de administrar y automatizar Hyper-V con PowerShell en su Windows Server, primero debe habilitar la plataforma de virtualización Hyper-V. Afortunadamente, existe una forma sencilla y compatible con PowerShell de hacer que Hyper-V funcione. Para comenzar, abra una ventana de PowerShell como Administrador.
Una vez que la ventana de PowerShell esté abierta, puede usar el siguiente comando Install-WindowsFeature para activar Hyper-V como una característica en su Windows Server.
Instalar-WindowsFeature -Nombre Hyper-V -IncludeManagementTools -Reiniciar
Después de ejecutar el comando anterior, Hyper-V se habilitará en su sistema. Sin embargo, deberá reiniciar Windows Server antes de intentar utilizar Hyper-V. Para reiniciar su Windows Server, puede usar el siguiente comando Restart-Computer o mediante la interfaz de usuario de Windows Server.
Restart-Computer
Cuando vuelva a iniciar sesión en Windows Server, podrá utilizar la plataforma de virtualización Hyper-V de Microsoft con PowerShell para administración y automatización.
Cómo utilizar PowerShell para realizar tareas de virtualización comunes
Hay bastantes cosas que puedes hacer en Hyper-V directamente en PowerShell. Comencemos con algo básico, como el comando "Get-VM". Este cmdlet enumerará todas las máquinas virtuales disponibles en Windows Server Hyper-V. Para ingresar este comando, inicie una ventana de PowerShell como administrador.
Get-VM
El cmdlet Get-VM es muy básico, ya que simplemente enumera qué máquinas virtuales están disponibles. Sin embargo, esto será útil, especialmente si necesita saber qué máquinas virtuales están disponibles para administrar mediante cmdlets de PowerShell Hyper-V.
Hay muchos cmdlets útiles que puede utilizar para realizar tareas de Hyper-V en Windows Server. El comando New-VM es uno de esos cmdlets. Para crear una nueva VM, utilice el siguiente comando New-VM.
New-VM -Name "MyNewVM" -MemoryStartupBytes 4GB
Otro cmdlet útil de Hyper-V que puede utilizar en PowerShell es el comando Start-VM. Este comando le permitirá iniciar rápidamente cualquier VM a través de PowerShell.
Start-VM -Name "MyNewVM"
Si desea apagar una VM que inició con Start-VM, también existe Stop-VM que le permite apagar una VM que inició con Stop-VM -Nombre "MyNewVM" cmdlet.
Comandos más útiles para realizar tareas comunes de virtualización
En la sección anterior, repasamos comandos básicos como "Get-VM", "New-VM", "Start-VM" y "Stop-VM". Sin embargo, existen comandos mucho más útiles que puede utilizar para realizar tareas de virtualización comunes en Hyper-V. Uno de esos comandos es New-VHD. Este comando le permite crear un nuevo disco duro virtual para Hyper-V directamente desde PowerShell.
New-VHD -Path "C:\VMs\MyNewVM.vhdx" -SizeBytes 75GB -Dynamic
Crear un nuevo VHD es una cosa, pero ¿qué sucede si desea adjuntarlo a una máquina virtual existente? Con el cmdlet Add-VMHardDiskDrive, puede hacerlo. Sin embargo, asegúrese de conocer el nombre de la VM de antemano (descúbralo con Get-VM).
Add-VMHardDiskDrive -VMName "MyNewVM" -Path "C:\VMs\MyNewVM.vhdx"
Además de agregar nuevos VHD a las máquinas virtuales Hyper-V en PowerShell, también puede administrar las redes desde allí. Por ejemplo, si necesita conectar una máquina virtual a un conmutador virtual (que ya existe), puede utilizar el cmdlet Connect-VMNetworkAdapter.
Connect-VMNetworkAdapter -VMName "MyNewVM" -SwitchName "YourVirtualSwitch"
Este no es el único comando de red para PowerShell/Hyper-V. Hay unos cuantos. A continuación se muestra una lista de comandos útiles que puede aprovechar para aprovechar al máximo la red de máquinas virtuales Hyper-V.
- Get-VMNetworkAdapter -VMName “VMName”: este cmdlet le permite obtener información del adaptador de red virtual para su VM.
- Set-VMNetworkAdapter -VMName “VMName”: este cmdlet le permite configurar las funciones del adaptador de red.
- Add-VMNetworkAdapter -VMName “VMName” -SwitchName “VirtualSwitch”: este cmdlet le permite agregar un adaptador de red a una VM.
- Remove-VMNetworkAdapter -VMName “VMName” -Name “AdapterName”: si desea eliminar un adaptador de red de una VM, puede hacerlo con este cmdlet.
- New-VMSwitch -Name “VMName” -NetAdapterName “NetworkAdapterName”: si necesita crear un nuevo conmutador virtual en una máquina virtual, puede hacerlo con el siguiente cmdlet.
- Get-VMSwitch -Name “VMName”: si necesita información sobre su conmutador virtual, este cmdlet lo hará por usted.
- Remove-VMSwitch -Name “VMName”: ¿Necesita deshacerse de un conmutador virtual de una VM en Hyper-V? Hazlo con este cmdlet.
- Set-VMSwitch -Name “VMName” -NetAdapterName “AdapterName”: este cmdlet le permite configurar el nombre de un conmutador virtual.
- Set-VMNetworkAdapterVlan -VMName “VMName” -Access -VlanId 10: si necesita configurar VLAN en una máquina virtual Hyper-V, este cmdlet le permite hacerlo.
Cómo automatizar tareas de Hyper-V con scripts de PowerShell
Conocer los cmdlets básicos para Hyper-V en PowerShell le permitirá escribir algunos scripts de automatización potentes que facilitarán la administración de máquinas virtuales. Por ejemplo, si necesita reiniciar 3 máquinas virtuales cada semana el martes después de los parches, puede escribir el siguiente script .PS1.
Nota: antes de intentar utilizar este script, cambie “VM1”, “VM2” y “VM3” por las máquinas virtuales con las que desea interactuar a través del script.
# PowerShell script to reboot VMs
# Define the VM names
$vmNames = @("VM1", "VM2", "VM3")
# Function to reboot VMs
Function Reboot-VMs {
foreach ($vmName in $vmNames) {
Restart-VM -Name $vmName -Force
Write-Host "Rebooted VM: $vmName"
}
}
# Schedule the script to run every Tuesday after patching
# Note: This part is usually done outside the script through Task Scheduler or similar tools
# Call the function to reboot VMs
Reboot-VMs
Las secuencias de comandos de PowerShell pueden ser avanzadas o básicas, realmente depende de tus talentos. Dominar las secuencias de comandos de PowerShell le permite automatizar una amplia gama de operaciones de Hyper-V. Para obtener más información sobre cómo puede aprender a crear secuencias de comandos de PowerShell, visite la documentación oficial de secuencias de comandos de Microsoft PowerShell.




