VM-Pilot

0.2.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.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.2.0 (current version) 0 5/17/2026
0.1.4 0 5/17/2026
0.1.3 0 5/17/2026
0.1.2 0 5/17/2026
0.1.1 0 5/17/2026
0.1.0 0 5/17/2026
Show more