Qué vas a conseguir
Un servidor Windows con Hyper-V donde crear máquinas virtuales de pruebas y de producción pequeña con PowerShell en lugar de a golpe de asistente, con puntos de control antes de cada cambio y una exportación semanal a otro disco.
Antes de empezar
- Windows Server 2022/2025 con la virtualización activada en la BIOS/UEFI y dos interfaces de red si puede ser: una para gestión, otra para las VMs.
- Un volumen aparte para las VMs (
D:\VMs), no el disco del sistema. - Las ISO de los sistemas que vas a instalar en
D:\ISO.
1. Instalar el rol
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -RestartSuccess Restart Needed Exit Code Feature Result------- -------------- --------- --------------True Yes SuccessRest... {Hyper-V, Hyper-V Module for Windows PowerShell, ...}# tras el reinicioGet-VMHost | Select-Object Name, VirtualMachinePath, VirtualHardDiskPathName VirtualMachinePath VirtualHardDiskPath---- ------------------ -------------------SRV-HV-01 C:\ProgramData\Microsoft\Windows\Hyper-V C:\Users\Public\Documents\Hyper-V\Virtual Hard DisksSet-VMHost -VirtualMachinePath D:\VMs -VirtualHardDiskPath D:\VMs\DisksCambia las rutas por defecto antes de crear la primera VM: luego cuesta mover.
2. El conmutador virtual
Get-NetAdapter | Select-Object Name, Status, LinkSpeedName Status LinkSpeed---- ------ ---------MGMT Up 1 GbpsVMNET Up 10 GbpsNew-VMSwitch -Name "vSwitch-LAN" -NetAdapterName "VMNET" -AllowManagementOS $falseName SwitchType NetAdapterInterfaceDescription---- ---------- ------------------------------vSwitch-LAN External Intel(R) Ethernet Controller X710New-VMSwitch -Name "vSwitch-Lab" -SwitchType InternalSi solo tienes una tarjeta de red, el conmutador externo tiene que llevar -AllowManagementOS $true; si no, el servidor se queda sin red en el momento de crearlo y pierdes la sesión remota. Hazlo desde la consola física o con iDRAC/iLO.
El conmutador Interno (vSwitch-Lab) es para pruebas que no deben tocar la red de la empresa: las VMs se ven entre sí y con el host, nada más.
3. Crear la VM con PowerShell
$vm = New-VM -Name "srv-test-01" -Generation 2 -MemoryStartupBytes 4GB -NewVHDPath "D:\VMs\Disks\srv-test-01.vhdx" -NewVHDSizeBytes 80GB -SwitchName "vSwitch-LAN"Set-VM -VM $vm -ProcessorCount 2 -DynamicMemory -MemoryMinimumBytes 2GB -MemoryMaximumBytes 8GB -AutomaticStartAction StartIfRunning -AutomaticStopAction ShutDown -CheckpointType ProductionAdd-VMDvdDrive -VM $vm -Path "D:\ISO\WindowsServer2025.iso"Set-VMFirmware -VM $vm -FirstBootDevice (Get-VMDvdDrive -VM $vm) -EnableSecureBoot OnSet-VMKeyProtector -VM $vm -NewLocalKeyProtector; Enable-VMTPM -VM $vmStart-VM -VM $vm; vmconnect.exe localhost srv-test-01Get-VM | Format-Table Name, State, CPUUsage, MemoryAssigned, Uptime, StatusName State CPUUsage MemoryAssigned Uptime Status---- ----- -------- -------------- ------ ------srv-test-01 Running 12 4294967296 00:02:11 Operating normallyGeneración 2 con Secure Boot y TPM virtual es lo que pide Windows 11 y Server 2025; para Linux cambia la plantilla: Set-VMFirmware -SecureBootTemplate MicrosoftUEFICertificateAuthority. CheckpointType Production hace que los puntos de control usen VSS dentro del invitado: consistentes con las aplicaciones, no solo con el disco.
4. Puntos de control antes de un cambio
Checkpoint-VM -Name "srv-test-01" -SnapshotName "antes-parche-2026-10-22"Get-VMSnapshot -VMName "srv-test-01" | Format-Table Name, CreationTime, ParentSnapshotNameName CreationTime ParentSnapshotName---- ------------ ------------------antes-parche-2026-10-22 22/10/2026 9:40:12# si el cambio sale mal:Restore-VMSnapshot -Name "antes-parche-2026-10-22" -VMName "srv-test-01" -Confirm:$false# si sale bien, en cuanto esté comprobado:Remove-VMSnapshot -VMName "srv-test-01" -Name "antes-parche-2026-10-22"Un punto de control no es una copia de seguridad: es un disco diferencial que crece y ralentiza la VM mientras exista. La regla es crear antes del cambio, borrar en cuanto se valide, nunca más de unos días. Get-VM | Get-VMSnapshot | Where-Object CreationTime -lt (Get-Date).AddDays(-7) lista los olvidados.
5. Exportar: la copia fría
Export-VM -Name "srv-test-01" -Path "E:\Export\$(Get-Date -Format yyyy-MM-dd)"Get-ChildItem "E:\Export\2026-10-22\srv-test-01" -Recurse -File | Measure-Object Length -Sum | Select-Object Count, @{n="GB";e={[math]::Round($_.Sum/1GB,1)}}Count GB----- -- 5 21,4# importar en otro host (copia con nuevo ID para no chocar con la original):Import-VM -Path "E:\Export\2026-10-22\srv-test-01\Virtual Machines\<GUID>.vmcx" -Copy -GenerateNewId -VhdDestinationPath "D:\VMs\Disks"Export-VM funciona con la VM encendida y deja configuración, discos y puntos de control en una carpeta que se puede importar en cualquier otro Hyper-V. Programado en una tarea semanal hacia otro disco o un NAS, es la copia mínima de un host sin Veeam; con Veeam (Nivel 2), el agente hace esto mismo con deduplicación y retención.
6. Lo que revisas cada mes
Get-VM | Get-VMSnapshot: puntos de control con más de una semana.Get-VM | Where State -eq Running | Get-VMIntegrationService | Where Enabled -and -not PrimaryStatusDescription -eq 'OK': servicios de integración que no responden (normalmente, invitado sin actualizar).- Espacio en
D:\VMsfrente a la suma de los VHDX dinámicos: pueden crecer hasta su tamaño máximo sin avisar. - Visor de eventos
Microsoft-Windows-Hyper-V-VMMS/Admin: errores de puntos de control o de exportación.
Siguientes pasos
- Hyper-V Replica hacia un segundo host: una copia de la VM a cinco minutos, con conmutación planificada; es el DR pequeño antes de un clúster.
- Un clúster de conmutación por error con almacenamiento compartido o S2D cuando las VMs sean de producción.
- La guía de vSphere hace lo mismo del otro lado; las ideas (snapshots cortos, exportación, host en mantenimiento) son las mismas con otros nombres.
¿Falta algo o en tu entorno es distinto? Escríbeme y lo corrijo.
Tech Career Lab · newsletter
¿Te ha servido? Cada dos semanas envío una idea práctica para perfiles IT: LinkedIn, proyectos, networking y procesos de selección.
Apúntate y llévate las 33 ideas →