Site icon Digital Thought Disruption

VM Conversion in Windows Admin Center (Public Preview): A Field Guide for VMware to Hyper-V

TL;DR:
Microsoft’s new VM Conversion extension in Windows Admin Center (WAC) v2 provides a no-cost, agentless way to convert VMware VMs (vCenter 6.x and 7.x) to Hyper-V with minimal downtime using CBT seeding plus a delta cutover. It supports batches up to 10, is cluster-aware, persists static IPs, and auto-maps BIOS to Gen 1 and UEFI to Gen 2. Because it is Public Preview, plan tight validation, explicit rollback, and a few post-cutover cleanups (VMware Tools removal, dynamic to fixed disks, memory settings).


Why this matters


What is VM Conversion (Preview)?

Key capabilities

Current limitations (Preview reality check)


Architecture at a glance

Flow: vCenter → VDDK and PowerCLI on WAC gateway → Hyper-V host or cluster (VHDX) → import VM → post-cutover cleanup.


Compatibility and supported matrix (Preview)

AreaSupported / Required
WAC GatewayWAC v2 GA 2410 (build about 2.4.12.x). Install VMware.PowerCLI, VC++ 2013 plus latest, VDDK 8.0.3 at C:\Program Files\WindowsAdminCenter\Service\VDDK.
SourcesvCenter 6.x and 7.x. No vSAN. CBT required.
TargetsHyper-V standalone host or WSFC cluster.
Guest OSWindows Server 2012 R2 to 2025; Windows 10; Ubuntu 20.04 and 24.04; Debian 11 and 12; RHEL 9; Alma or CentOS. Linux must have Hyper-V drivers.
BatchingUp to 10 VMs per wave.
NetworkingStatic IP persistence supported with credential-assisted capture and apply.
Landing configDynamic VHDX disks. Static Memory during migration. Re-enable Dynamic Memory later if desired.
Not supportedAzure Local target, WAC-in-Azure portal, resync, vSAN, vCenter 8.x not listed.

Prerequisites


How to playbooks by use case

A) Single VM → Standalone Hyper-V host

  1. Install the extension: WAC → Settings → Extensions → install VM Conversion (Preview).
  2. Connect endpoints: In the extension, connect to vCenter. In WAC, connect to the target Hyper-V host.
  3. Synchronize: Select the VM → Synchronize → choose destination Path → run.
  4. Migrate (cutover): Migrate tab → select VM → Migrate. The tool runs prechecks, performs delta replication, powers off the source, performs a final delta, then imports to Hyper-V. Keep the browser session active.
  5. Post-cutover:
    • Verify boot, services, and NIC or vSwitch mapping.
    • If static IP, confirm it persisted.
    • Disks: convert to fixed if policy requires (script below).
    • Memory: re-enable Dynamic Memory if desired.
    • Tools: remove VMware Tools if still present.

B) Batch wave (up to 10 VMs) for an app stack

  1. Group related VMs (same app or service, or rack or OU) up to 10.
  2. Synchronize all selected VMs to seed data while online.
  3. Change window: notify stakeholders, plan a short outage per app.
  4. Migrate the batch in one go. Validate app smoke tests (web ports, DB, queue).
  5. Optimize disks and memory and remove tools as a post-wave task.

C) Cluster-aware to WSFC

  1. Connect WAC to the cluster object (not just a node).
  2. Set sync Path to CSV or clustered storage.
  3. Use the same Synchronize → Migrate flow. The tool imports the VM to the cluster.

D) Linux guests

E) Static IP persistence

F) Identity-sensitive workloads (BIOS GUID)


Pros, cons, and gotchas

Pros

Cons

Gotchas to watch


Implementation checklist (operators)

  1. Upgrade WAC to v2 (2410 GA).
  2. On the WAC gateway, install PowerCLI, VC++ 2013 plus latest, and VDDK 8.0.3 at ...\Service\VDDK.
  3. Install the extension in WAC.
  4. Add vCenter and connect Hyper-V target (host or cluster).
  5. Prechecks: no snapshots, CBT present, capacity OK, vSwitch prepared.
  6. Synchronize to seed, then Migrate for delta and cutover.
  7. Post-cutover: VMware Tools clean-up if needed, disk conversions, memory policy, monitoring baselines.

Security, Zero-Trust, and DR

Compliance checkpoints (examples)


Post-cutover automation snippets (PowerShell)

Convert dynamic VHDX to fixed

Convert-VHD -Path "D:\VMs\App01\App01.vhdx" `
  -DestinationPath "D:\VMs\App01\App01_fixed.vhdx" -VHDType Fixed

Re-enable Dynamic Memory

Stop-VM App01
Set-VM -Name App01 -DynamicMemoryEnabled $true `
  -MemoryStartupBytes 2GB -MinimumBytes 1GB -MaximumBytes 8GB
Start-VM App01

Secure Boot template for Gen 2 Linux (UEFI CA)

Set-VMFirmware -VMName "Ubuntu01" -SecureBootTemplate "MicrosoftUEFICertificateAuthority"

Update BIOS GUID if required

# After saving Microsoft's script as Update-VMBiosInfo.ps1
.\Update-VMBiosInfo.ps1 -VMName "Contoso" -BiosGuid "{423A2700-F96D-561B-B421-C3088111A97B}"

Validation and testing (pre-prod first)

Pre-cutover gates

Cutover gates

Chaos with low blast radius

Artifacts to collect


Backout plan (keep this simple)


FinOps and Sustainability quick hits


FAQs you will get from leadership


What to do next

  1. Pilot 3 to 5 VMs, both Windows and Linux, through the full flow.
  2. Wave planning: group up to 10 VMs per window aligned to business services.
  3. Runbooks: migration, validation, backout, and post-cutover optimization.
  4. Decision gate: if you hit preview limits such as vCenter 8.x or vSAN or scale, pivot those subsets to SCVMM or a third-party V2V tool.
Exit mobile version