Capturar videos de Hyper-V VMs con PowerShell

  • PowerShell ofrece cmdlets completos para crear, administrar, exportar e importar VMs de Hyper‑V con control remoto.
  • La automatización con filtrado y canalizaciones permite operaciones masivas y métricas detalladas por VM.
  • Red, almacenamiento y recursos se ajustan con New‑VMSwitch, Add‑VMNetworkAdapter, Set‑VMMemory y Set‑VMProcessor.
  • Scripts de reporte y soluciones de backup complementan snapshots y exportaciones para proteger el entorno.

Gestión de Hyper-V con PowerShell

Si trabajas con virtualización en Windows, tarde o temprano te verás automatizando tareas. PowerShell y Hyper‑V encajan como un guante: desde arrancar o apagar VMs, hasta exportarlas, medir recursos o crear redes virtuales, todo se puede orquestar sin abrir la consola gráfica.

En las próximas líneas repasamos, con ejemplos y buenas prácticas, cómo manejar a fondo Hyper‑V con PowerShell. Verás comandos esenciales, creación y configuración de VMs, exportación e importación, filtrado masivo, métricas, red y almacenamiento, además de scripts útiles para informar del estado de tu plataforma y opciones de copia de seguridad para dormir más tranquilo.

¿Qué es PowerShell y por qué usarlo con Hyper‑V?

PowerShell es el marco de automatización y scripting de Microsoft basado en .NET. Combina un intérprete de órdenes con un lenguaje de scripts muy potente, ideal para administración en Windows, macOS y Linux.

Sus comandos (cmdlets) te permiten encadenar acciones y crear guiones reutilizables. Microsoft proporciona cientos de cmdlets base y, con el módulo Hyper‑V, dispones de todo lo necesario para gestionar hosts, VMs, red y almacenamiento desde consola.

Qué es PowerShell

Cómo abrir y usar PowerShell en hosts Hyper‑V

Si el host tiene GUI, abre el menú Inicio, busca PowerShell y ejecuta “Ejecutar como administrador”. En instalaciones tipo Server Core o Hyper‑V Server, escribe powershell en el símbolo del sistema para iniciar la sesión PS.

Para acceso remoto con Escritorio Remoto en Server Core, usa sconfig (opción 7) y, si necesitas volver a la consola, la opción 15 te devuelve al cmd.exe. Recuerda habilitar RDP en el host al que te conectarás.

La administración remota sin RDP es aún más cómoda: instala las herramientas en tu estación con Install-WindowsFeature RSAT-Hyper-V-Tools y añade -ComputerName a los cmdlets (Get‑VM, Start‑VM, etc.) para operar sobre el host objetivo. Gestionarás varios hosts sin saltar entre escritorios remotos.

Cmdlets esenciales de Hyper‑V con ejemplos

Cuando no recuerdes un comando o su sintaxis, tira de catálogo. Get-Command lista cmdlets, funciones y alias disponibles, y puedes filtrar por patrón:

Get-Command -Module Hyper-V
Get-Command *-VM
Get-Command *-VHD*

Para ver ayuda, ejemplos y parámetros, Get-Help aclara la sintaxis e incluso muestra ejemplos prácticos:

Get-Help Get-VM

Inventario y ciclo de vida de VMs

Para ver VMs del host local o remoto, Get-VM es el primer paso:

Get-VM
Get-VM -ComputerName Server1

Inicia VMs concretas o lotes. Puedes usar comodines en el nombre:

Start-VM -Name 'Windows Server 2016'
Start-VM -Name 'Hyper-V*'

Apaga correctamente (o forzado si no responde). Stop-VM admite -TurnOff y -Force para casos extremos, y Save-VM hiberna el estado:

Stop-VM -Name 'Windows Server 2016'
Stop-VM -Name 'Hyper-V*' -TurnOff
Stop-VM -Name 'Windows Server 2016' -Force
Save-VM -Name 'Windows Server 2016'
Get-VM -Name 'Hyper-V*' | Save-VM

Para apagado elegante desde el SO invitado, Invoke-VMShutdown es ideal cuando la integración lo permite:

Invoke-VMShutdown -VMName 'testvps' -Force

Puntos de control (instantáneas)

Los checkpoints son oro antes de cambios delicados. Checkpoint-VM crea el punto y Get-VMSnapshot lo verifica:

Checkpoint-VM -Name 'Windows Server 2016' -SnapshotName 'Update1'
Get-VMSnapshot -VMName 'Windows Server 2016'

Para limpiar instantáneas por patrón, encadena con canalización. Remove-VMSnapshot borra lo que indiques:

Get-VM 'Hyper-V Server 2012' | Remove-VMSnapshot -Name 'Testing*'

Discos virtuales (VHD/VHDX)

Verifica rutas y salud de archivos. Test-VHD te confirma la existencia y validez del VHD:

Test-VHD -Path 'C:\Testing.vhd'

Cuando necesites crear o adjuntar, combina New-VHD y Add-VMHardDiskDrive para automatizar creación/adjunto. El tamaño fijo es buena práctica en cargas sensibles al rendimiento:

New-VHD -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx' -SizeBytes 60GB -Fixed
Add-VMHardDiskDrive -VMName 'WSTEST' -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx'

Métricas y red

Activa la medición de recursos y revisa consumos por VM. Enable-VMResourceMetering + Measure-VM te dan CPU, RAM, disco y red:

Enable-VMResourceMetering -VMName 'Windows Server 2016'
Measure-VM -VMName 'Windows Server 2016'

Para enumerar adaptadores virtuales, incluye gestión. Get-VMNetworkAdapter abarca VMs y el propio host con -All:

Get-VMNetworkAdapter -All

Versión de configuración, procesos y filtrado

Tras actualizar el host, sube la versión de VM si procede. Update-VMVersion lo hace de forma segura:

Update-VMVersion -Name 'TestVM'

Para diagnosticar cuellos de botella, apóyate en cmdlets de procesos. Get-Process, Stop-Process, Start-Process, Wait-Process y Debug-Process te dan control:

Get-Process -Id 8892
Get-Process WINWORD | Format-List *
Start-Process -FilePath 'notepad.exe'
Start-Process -FilePath 'powershell' -Verb RunAs
Stop-Process -Name 'notepad'
Stop-Process -Id 5052

Where-Object filtra cualquier colección. Úsalo con servicios, cmdlets o procesos para quedarte con lo relevante:

Get-Service | Where-Object {$_.Status -eq 'Stopped'}
Get-Command | Where-Object {$_.Name -like '*wait*'}
Get-Process | Where-Object {$_.ProcessName -Match '^sys.*'}

Capturar Videos Hyper-V VMs con PowerShell

Crear y configurar VMs con PowerShell

Crear una VM de Generación 2 con VHDX nuevo y red asignada es cuestión de un comando. New-VM permite definir memoria, disco, ruta y conmutador en un único paso:

New-VM -Name 'WSTEST' -MemoryStartupBytes 2GB -Generation 2 \
  -NewVHDPath 'D:\hyper-v\virtual hard disks\WSTEST.vhdx' \
  -NewVHDSizeBytes 60GB -SwitchName 'ExternalSwitch'

Si necesitas un DVD virtual para arrancar desde ISO, agrega controladora y unidad. Recuerda emparejar número y ubicación de la controladora a tu diseño:

Add-VMSCSIController -VMName 'WSTEST'
Add-VMDvdDrive -VMName 'WSTEST' -ControllerNumber 1 -ControllerLocation 0 -Path 'D:\ISO\my.iso'

También puedes preparar discos fijos y adjuntarlos. Los VHDX fijos reducen fragmentación y latencias en I/O exigente:

New-VHD -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx' -SizeBytes 60GB -Fixed
Add-VMHardDiskDrive -VMName 'WSTEST' -Path 'D:\hyper-v\virtual hard disks\wstest.vhdx'

Para escenarios con VHD existente, especifica -VHDPath y, si usas administración remota, añade -ComputerName. La propiedad -BootDevice permite elegir entre VHD, ISO o arranque de red:

New-VM -ComputerName 'Server1' -Name 'VM1' -MemoryStartupBytes 4GB \
  -BootDevice VHD -VHDPath '.\VMs\Win10.vhdx' -Path '.\VMData' \
  -Generation 2 -SwitchName 'ExternalSwitch'

Un ejemplo con “splatting” en PowerShell ISE para dejarlo limpio y repetible. Es ideal para plantillas de creación:

$VMName = 'VMNAME'
$VM = @{
  Name = $VMName
  MemoryStartupBytes = 2147483648
  Generation = 2
  NewVHDPath = "C:\\Virtual Machines\\$VMName\\$VMName.vhdx"
  NewVHDSizeBytes = 53687091200
  BootDevice = 'VHD'
  Path = "C:\\Virtual Machines\\$VMName"
  SwitchName = (Get-VMSwitch).Name
}
New-VM @VM

Administración avanzada: movimientos, importaciones y exportaciones

Para mover una VM entre hosts, Move-VM admite traslado con o sin almacenamiento, y funciona genial cuando el origen está en SMB:

Move-VM -ComputerName 'Server1' -Name 'VM1' -DestinationHost 'Server2'
Move-VM -ComputerName 'Server1' -Name 'VM1' -DestinationHost 'Server2' \
  -IncludeStorage -DestinationStoragePath 'D:\VM_name'

Exportar crea una copia completa (configuración, VHDs e instantáneas). Export-VM sirve para archivo, pruebas o migraciones ad-hoc:

Export-VM -ComputerName 'Server1' -Name 'VM1' -Path 'D:\'
Get-VM | Export-VM -Path 'C:\'

Importar tiene tres modalidades: Registrar in situ (mismos archivos e ID), Restaurar (copia a nueva ruta conservando ID) y Copiar (copia con nuevo ID). Elige según colisión de IDs y objetivo:

# Registrar in situ (elimina antes la VM original con el mismo ID)
Get-VM 'DemoVM' | Remove-VM
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\DemoVM\\Virtual Machines\\{GUID}.vmcx'

# Restaurar a nuevas rutas, conservando ID
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\Hyper-V Server 2012\\Virtual Machines\\{GUID}.vmcx' \
  -Copy -VhdDestinationPath 'C:\\Program Files\\Imported VMs\\VHD Files' \
  -VirtualMachinePath 'C:\\Program Files\\Imported VMs\\VM Files'

# Copiar con nuevo ID (importable varias veces en el mismo host)
Import-VM -Path 'C:\\Virtual Hard Disks\\Exported VMs\\DemoVM\\Virtual Machines\\{GUID}.vmcx' \
  -Copy -GenerateNewId

Si trabajas con Azure Local (Windows Server 2019/2022 y versiones como 2311.2 en adelante), la administración remota con -ComputerName es la norma: inventario, arranque/parada, checkpoints, importación/exportación y movimientos se ejecutan igual desde tu equipo de administración.

CMD y PowerShell: comandos esenciales para cualquier usuario de Windows

Red, almacenamiento y recursos: memoria y CPU

Crea conmutadores para aislar o conectar VMs a la LAN. New-VMSwitch admite modos y QoS de ancho de banda:

New-VMSwitch 'QoS Switch' -NetAdapterName 'Wired Ethernet Connection 3' -MinimumBandwidthMode Weight

Agrega NICs virtuales a VMs y conéctalas al conmutador correspondiente. Add-VMNetworkAdapter es tu aliado para redes por VM:

Add-VMNetworkAdapter -ComputerName 'Server1' -VMName 'VM1' -Name 'Redmond NIC1'
Add-VMNetworkAdapter -ComputerName 'Server1' -VMName 'VM1' -SwitchName 'Network'

La memoria dinámica optimiza densidad sin perder control. Set-VMMemory ajusta mínimos, inicio, máximos, prioridad y buffer:

Set-VMMemory -ComputerName 'Server1' -Name 'VM1' -DynamicMemoryEnabled $true \
  -MinimumBytes 64MB -StartupBytes 256MB -MaximumBytes 2GB -Priority 80 -Buffer 25

Asigna vCPU con límites y reservas. Set-VMProcessor define recuento, reserva, máximo y peso relativo por VM:

Set-VMProcessor -ComputerName 'Server1' -Name 'VM1' -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200

Para generar nuevos discos, New-VHD cubre escenarios dinámicos o fijos en VHD/VHDX. Combínalo con Add-VMHardDiskDrive para adjuntarlos a la VM deseada.

Operaciones masivas y filtrado

Ver comandos del módulo Hyper‑V en una rejilla interactiva es muy práctico. Out-GridView te ayuda a inspeccionar disponible y parámetros:

Get-Command -Module Hyper-V | Out-GridView

Para inventarios, filtra por estado. Where-Object te deja ver VMs en ejecución o apagadas de un vistazo:

Get-VM | Where-Object {$_.State -eq 'Running'}
Get-VM | Where-Object {$_.State -eq 'Off'}

Arranca todas las VMs apagadas o detén las que están en ejecución mediante canalización. Es ideal para tareas programadas:

Get-VM | Where-Object {$_.State -eq 'Off'} | Start-VM
Get-VM | Where-Object {$_.State -eq 'Running'} | Stop-VM

Renombrar y limpiar también es directo. Rename-VM y Remove-VM te ayudan en reetiquetado y retirada (recuerda, Remove‑VM no borra VHDs):

Rename-VM -ComputerName 'Server1' -Name 'VM1' -NewName 'VM2'
Get-VM -Name 'VM2'
Remove-VM -Name 'VM2'

En clúster, retira grupos completos cuando toque. Remove-ClusterGroup -RemoveResources limpia la VM y sus recursos de cluster:

Get-ClusterGroup
Remove-ClusterGroup -RemoveResources -Name 'VM1'

Supervisión y backup: scripts y herramientas

Para auditar salud de Hyper‑V con informes HTML, el script de Serhat Akinci genera un reporte completo del entorno y puede enviarse por correo. Descárgalo y revisa un ejemplo de salida:

Link de descarga · Reporte de ejemplo

Si usas Hyper‑V Replica, el script de Sangeeth monitoriza el estado de replicación en nodos únicos o clúster y entrega un informe HTML listo para distribuir:

Descarga Replication Health Mailer

En cuanto a protección de datos, existen soluciones pensadas para VM como NAKIVO Backup & Replication (VMware, Hyper‑V, Nutanix, AWS EC2, Linux, Windows y Microsoft 365), y Vinchin Backup & Recovery (Proxmox, VMware, Hyper‑V, XenServer, XCP‑ng, oVirt, RHV…). Ofrecen copia sin agente, recuperación instantánea y migración V2V, y facilitan políticas y programación centralizadas para minimizar riesgos.

Recuerda que Export‑VM e Import‑VM sirven como alternativa ad‑hoc para archivado, pruebas y restauración sencilla, pero no sustituyen a un backup integral con deduplicación, cifrado y compresión. La exportación exige más intervención manual y escala peor en entornos grandes.

Ya cuentas con una guía práctica para llevarte Hyper‑V a la consola: descubrir cmdlets, crear y mover VMs, medir recursos, afinar red y almacenamiento, filtrar en masa y reportar salud. El ecosistema PowerShell te da velocidad y precisión; si lo combinas con buenas políticas de copia y scripts de supervisión, tendrás una plataforma sólida y lista para crecer.