Skip to content

supermarsx/wfu-tool

Repository files navigation

wfu-tool logo

wfu-tool

Windows feature upgrade orchestration for legacy Windows 10 through current Windows 11, with interactive TUI flows, headless automation, resume checkpoints, media acquisition, and USB creation.

Specification | Third-Party Notices | License

What It Does

wfu-tool is a Windows-only PowerShell upgrade tool built to move machines across supported Windows feature releases with real orchestration instead of one-off scripting.

It can:

  • detect the current Windows release and build a valid upgrade path
  • sequentially upgrade from old Windows 10 releases through newer Windows 10 and Windows 11 targets
  • perform direct target upgrades through ISO/media flows
  • run interactively or headlessly from CLI and .ini config
  • persist checkpoints and resume after reboot
  • acquire media from multiple Microsoft-backed sources with source-health controls
  • create bootable USB media from staged ISO content
  • apply compatibility and policy workarounds needed for difficult upgrade paths

Highlights

  • Windows 10 and Windows 11 targets are separated in the interactive selector
  • Headless automation supports CLI > INI > checkpoint resolution
  • Dead sources stay selectable without being auto-picked
  • Legacy Windows 10 media support is built in through a pinned manifest layer
  • Resume is checkpoint-driven, with scheduled-task and RunOnce bootstrap support
  • The repo includes CI, packaging, release, winget, and Chocolatey scaffolding

Project Layout

Quick Start

Interactive launcher

.\launch-wfu-tool.ps1

Or via batch:

launch-wfu-tool.bat

Headless run

.\wfu-tool.ps1 -Mode Headless -TargetVersion 25H2 -NoReboot

Create USB media

.\wfu-tool.ps1 -Mode CreateUsb -TargetVersion 25H2 -UsbDiskNumber 3

Resume from checkpoint

.\resume-wfu-tool.ps1 -ResumeFromCheckpoint

Configuration

wfu-tool supports .ini-driven automation.

Example:

[general]
mode=headless
target_version=25H2
download_path=C:\wfu-tool
no_reboot=true
allow_fallback=true

[sources]
preferred_source=WU_DIRECT
allow_dead_sources=false

[usb]
create_usb=false
partition_style=gpt

[resume]
enabled=true
resume_from_checkpoint=true

Use it like this:

.\launch-wfu-tool.ps1 -Headless -ConfigPath .\configs\job.ini

Source Model

The engine uses normalized source IDs across CLI, config, logs, and selection logic:

  • WU_DIRECT
  • ESD_CATALOG
  • FIDO
  • MCT
  • ASSISTANT
  • WINDOWS_UPDATE
  • LEGACY_XML
  • LEGACY_CAB
  • LEGACY_MCT_X64
  • LEGACY_MCT_X86

Source health is first-class:

  • healthy: selectable and auto-eligible
  • degraded: selectable and auto-eligible, but warned
  • dead: selectable only when explicitly requested

Resume and Safety

The tool keeps session state in a checkpoint file and can re-enter after reboot without forcing the user to rebuild the run manually.

It also performs or supports:

  • pending reboot detection
  • disk space checks
  • network readiness checks
  • DISM and SFC health repair
  • media reuse where possible
  • diagnostics capture on failure

This is still a Windows upgrade tool. It touches registry, scheduled tasks, services, update state, and optionally USB disks. It should be run elevated and intentionally.

CI and Release

The repository includes a Windows GitHub Actions pipeline in ci-release.yml with this order:

  1. format
  2. type
  3. lint
  4. test
  5. build_test
  6. package
  7. release / publish

Release versioning uses calendar tags in YY.N format, for example:

  • 26.1
  • 26.2

Packaging and release helpers live in:

Testing

Run the full suite:

.\tests\Test-Runner.ps1

Useful targeted checks:

.\devscripts\Check-Type.ps1
.\devscripts\Check-Lint.ps1
.\devscripts\Build-Test.ps1
.\devscripts\Package.ps1 -Version 26.1

Notes

  • This project is Windows-only.
  • Administrator rights are required for real upgrade and USB flows.
  • Some live Microsoft endpoints can be unstable or change over time.
  • Legacy support exists in code and source planning, but old Microsoft media endpoints are not equally reliable.

Documentation