VM-Pilot

0.3.0

WPF GUI for spinning up disposable Hyper-V VMs and collecting AutoPilot hardware hashes. Offline mode writes a CSV; Online mode wraps Andrew Taylor's community AutoPilot script for in-VM Intune import.

Minimum PowerShell version

5.1

Installation Options

Copy and Paste the following command to install this package using PowerShellGet More Info

Install-Module -Name VM-Pilot

Copy and Paste the following command to install this package using Microsoft.PowerShell.PSResourceGet More Info

Install-PSResource -Name VM-Pilot

You can deploy this package directly to Azure Automation. Note that deploying packages with dependencies will deploy all the dependencies to Azure Automation. Learn More

Manually download the .nupkg file to your system's default download location. Note that the file won't be unpacked, and won't include any dependencies. Learn More

Owners

Copyright

(c) Mark Orr. All rights reserved.

Package Details

Author(s)

  • Mark Orr

Tags

Hyper-V AutoPilot Intune WPF VM Enrollment HWID

Functions

Start-VMPilot

PSEditions

Desktop Core

Dependencies

This module has no dependencies.

Release Notes

0.3.0
- New SETUP wizard (green SETUP button in the host GUI): guided steps to
 download an official Windows 11 multi-edition ISO from Microsoft, then
 builds the parent VHDX from the ISO you pick. Shows live phase status plus
 a real apply percentage (from Expand-WindowsImage's progress stream), then
 prompts "Build your first VM!" and auto-closes on success.
- Get-Win11VHDX.ps1 auto-detects the Windows release from the ISO image
 build (26100 -> 24H2, 26200 -> 25H2) and names the VHDX accordingly
 (C:\VMs\Win11-<release>.vhdx) when -OutVhdx is not pinned. New -PickIso
 switch opens a native file picker.
- Safer rebuilds: the builder refuses to delete a parent VHDX any VM depends
 on (and names the VM) instead of corrupting that VM's differencing disk;
 otherwise it dismounts and retries. The SETUP wizard also warns up front
 if a parent VHDX already exists or has dependent VMs.
- Offline completion now shows where the hardware-hash CSV was saved on the
 host, with an "Open folder" link that selects the file in Explorer.
- Windows PowerShell 5.1 compatibility: all bundled scripts are now UTF-8
 with a BOM, so 5.1 reads them as UTF-8 (no-BOM files were parsed as the
 legacy Windows-1252 codepage, which broke parsing on non-ASCII characters
 like em-dashes). Launch via powershell.exe or pwsh.
- Fix builder-phase progress not advancing: the builder reports phases via
 Write-Host (information stream), so the in-runspace capture was changed
 from 2>&1 (errors only) to *>&1 (all streams).

0.2.0
- New first-time setup dialog. When no cached parent VHDX exists for the
 selected release, the GUI prompts for the ISO source: Download via UUP
 Dump (recommended), or Browse for an existing ISO. UUP Dump uses the
 Windows Update CDN (*.delivery.mp.microsoft.com), which corporate
 firewalls almost never block — solves the "Microsoft software-download
 endpoint is blocked" failure mode hit on locked-down Enterprise networks.
- New bundled Get-UUPDumpISO.ps1 helper. Queries the UUP Dump API,
 downloads the conversion script pack, patches ConvertConfig.ini with
 AutoExit=1 / AddUpdates=0 / ResetBase=0 / SkipWinRE=1 for a fast
 non-interactive build (~15-20 min). Pass -IncludeUpdates if you want
 the full ~60-90 min build with all cumulative updates integrated.
 VM-Pilot's HWID flow doesn't need integrated updates — the hardware
 hash is derived from BIOS/vTPM, not OS state.
- Builder Get-Win11VHDX.ps1 now accepts -IsoPath. If supplied, skips the
 Fido + download flow entirely and DISM-applies the supplied ISO.
- WIN RELEASE picker is back. Per-release VHDX cache
 (C:\VMs\Win11-24H2.vhdx, C:\VMs\Win11-25H2.vhdx) since UUP Dump
 reliably serves both 24H2 and 25H2 (where Fido only offered Latest).
- Real % progress meter during UUP file download (aria2c) and
 install.wim compression (LZX) — no more guessing at 99%.
- In-VM enrollment GUI rebranded as "VM-Pilot" with "AutoPilot Import"
 subtitle, matching the host GUI.
- Hardening: verify DISM apply produced a complete Windows install,
 verify bcdboot wrote real UEFI boot files, suppress Windows automount
 around every Mount-VHD (kills the "format disk in drive X:" popup),
 robust VHDX dismount with retry, kill orphan wimserv/wimlib-imagex
 handles before VM creation, force Drive-first boot order on new VMs.

0.1.4
- No console flash on Start-VMPilot or UAC elevation. Switched from
 Start-Process -WindowStyle Hidden (which hides the console after it
 paints, causing a brief flash) to WScript.Shell.Run / Shell.Application
 ShellExecute with show=0 (SW_HIDE from creation). Only the UAC prompt
 itself is visible now.
- Fix "Enable Failed: Class not registered" on IT-managed Enterprise
 machines by calling dism.exe directly instead of the PowerShell
 Enable-WindowsOptionalFeature cmdlet. The PS cmdlet uses DISM COM
 components that can be misregistered on locked-down boxes (HRESULT
 0x80040154); dism.exe is a native binary with no COM dependency.
- Hyper-V startup check is now sub-second on Pro/Enterprise/Education
 boxes. Previously ran up to three Get-WindowsOptionalFeature lookups
 against DISM (15-45s) before showing the enable dialog. Trust the OS
 SKU via Win32_OperatingSystem; any non-Home Pro/Enterprise/Education/
 Workstation/Server edition is treated as Disabled (offers to enable)
 without probing DISM.
- Drop the WIN RELEASE picker. Microsoft now publishes only the most-
 recent Windows 11 release on their public download page, and Fido's
 -Rel parameter rejects older tokens like '24H2' as 'Invalid Windows
 release provided.' Pull '-Rel Latest' from Fido and pass
 '-Ed Home/Pro/Edu' (the consolidated edition Microsoft now ships).
 The DISM step still picks Windows 11 Pro from the combined install.wim.
- Parent VHDX is now cached as C:\VMs\Win11.vhdx (release-agnostic).

0.1.1
- Real % progress bar during the Windows ISO download (BITS-Transfer).
- Hyper-V auto-enable flow on first run with reboot prompt for fresh installs.
- LICENSE file (MIT) so the gallery's License link resolves.
- Builder resolves from the module folder first, then falls back to the
 legacy C:\Tools\WinVHDX path.
- Fido cached outside the module folder so Publish-Module does not bundle it.
- Better error surfacing from Fido (e.g. the 715-123130 IP-block message is
 now shown verbatim instead of "no URL").

0.1.0
- First module-shaped release. Wraps the existing WPF GUI behind Start-VMPilot.

FileList

Version History

Version Downloads Last updated
0.3.0 (current version) 13 6/30/2026
0.2.0 10 5/17/2026
0.1.4 8 5/17/2026
0.1.3 4 5/17/2026
0.1.2 7 5/17/2026
0.1.1 4 5/17/2026
0.1.0 4 5/17/2026
Show more