Skip to content

About

A lightweight, native taskbar-style launcher for Windows PE (WinPE) amd64 and Windows x64. It opens applications and scripts, exposes system tools (Wi-Fi, BitLocker, clock sync), and adds a built-in System Diagnostic, a full-screen Screenshot tool, and an optional Smart Assistant that chats with any OpenAI-compatible LLM

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

WinPE Launcher

WinPE Launcher

A taskbar-style launcher for Windows PE and Windows desktop, on x64 and arm64. It starts your applications and scripts, exposes the handful of system tools a technician actually needs, and stays out of the way — one self-contained executable plus one JSON file.

It is built for ISVs and MSPs: the Applications menu and the script runtime are the point. Put your tools on the media, name them once in apps-config.json, and the media becomes your tool with your branding.


Highlights

  • Native C# (WinForms / .NET 10) — no installer, no services, no runtime to download.
  • Self-contained single file (Launcher.exe + apps-config.json) — the .NET runtime is bundled, so nothing has to be installed on the target.
  • x64 + arm64 from one codebase; published per architecture (win-x64, win-arm64).
  • WinPE-ready: the UI library (AntdUI) and fonts (Inter / Hack) are embedded — no DLL files beside the exe.
  • Config-driven: a single apps-config.json (comments and missing commas tolerated) drives apps, branding, timezone, hotkeys and UI scale.
  • Offline by default: only the optional Smart Assistant needs the network.

What it does

Area Contents
System Shutdown / Reboot (wpeutil), Wi-Fi, BitLocker unlock, Sync time
System Tools Command Prompt, Notepad, PowerShell 5.1, PowerShell 7, Task Manager, System Info, Log Diagnostics, Autopilot hash capture + viewer
Applications your own entries — see below
Opened Windows jump to any running window
Status area System Information, screen capture, Assistant (chat), network status, clock

Every selector — System, System Tools, Applications, Opened Windows — doubles as a search box: start typing to filter the list, Esc clears it. With a long apps list that is the fastest way to reach an entry.

System System Tools Applications
System menu System Tools menu Applications menu

Make it yours

Applications menu

Every entry in apps becomes a button. A relative path is searched on every ready drive under [drive]:\CORESYSTEM\Softwares, then \CORESYSTEM\Scripts, then \CORESYSTEM — so "PALEMOON\PALEMOON.EXE" or "ping.ps1" is all you need, and the same media works from any drive letter. Use a full path (C:\..., X:\...) when the file lives elsewhere.

Field Meaning
name label in the menu (default: file name without extension)
path program or script (see the search order above)
args optional command line
cwd optional working directory
icon optional AntdUI icon name, e.g. CodeOutlined
startup true = run once automatically after the launcher loads
shell .ps1 only: pwsh or ps51, overriding the global shell

Script runtime

File type How it runs
.ps1 <shell> -NoProfile -ExecutionPolicy Bypass -File "<path>"
.cmd / .bat cmd.exe /c
anything else started directly

shell at the config root picks the default: pwsh (PowerShell 7), ps51 (Windows PowerShell 5.1, for legacy scripts) or auto (pwsh when present). The console window size is not a launcher setting — it comes from the image (HKCU\Console), if the image sets one.

Branding, start-up and scaling

Key Effect
whitebox text in the bar's left box (max 15 characters)
timezone Windows time-zone id, applied in the background (pwsh Set-TimeZone)
networkInit WinPE only: brings the network up at start-up behind a small dialog instead of a visible console
uiScale scales the whole UI, dialogs included. 1 = 100%. FullHD → 1 or 1.25; 1440p → 1.5; 4K → 2

Hotkeys

Sensible defaults are built in; the hotkeys section overrides them or sets a single binding to "" to disable it. scope local (default) fires only while the launcher has focus, so a hotkey can never hijack an application you opened; global also tries a system-wide registration and falls back to local.

Action Default Action Default
System menu Ctrl+Alt+S Assistant Ctrl+Alt+H
Tools menu Ctrl+Alt+T Diagnostics Ctrl+Alt+D
Applications menu Ctrl+Alt+A Screenshot Ctrl+Alt+P
Opened windows Ctrl+Alt+O Wi-Fi Ctrl+Alt+W
Sync time Ctrl+Alt+Y Shutdown Ctrl+Alt+Q
Reboot Ctrl+Alt+R

Smart Assistant (optional)

Any OpenAI-compatible endpoint. The feature stays disabled while endpoint is empty — there is no default provider. It runs on PowerShell 7 when present, and needs the network.


Autopilot hash capture

System Tools ▸ Autopilot Hash Capture reads the hardware hash with oa3tool /Report and writes Hash-<SERIAL|NOSERIAL>-<yyyyMMdd-HHmmss>.csv to the first writable target — the USB media first, then a freshly deployed Windows volume, then %TEMP% — together with autopilot-hash.log, which records the group tag and every drive that was inspected. Autopilot Hash Viewer opens a CSV, decodes the OAv3 blob and validates it (magic, checksum, records, identity fields).

What you must supply (this launcher does not ship them):

File Where to get it
oa3tool.exe Windows ADK — Deployment Tools\<arch>\Licensing\OA30\oa3tool.exe
PCPKsp.dll from a Windows installation (System32\PCPKsp.dll), placed in the image's System32
PowerShell 7 required by the capture; the launcher reports it if pwsh is missing

Place oa3tool.exe next to Launcher.exe (the capture also checks System32 first).

Group tag. The capture asks for an optional Intune group tag, remembered for the session and written as the CSV's 4th column. Intune maps it to the Entra device attribute OrderID, which is what a dynamic device group queries so the device picks up its Autopilot deployment profile. Commas become -, quotes and non-ASCII characters are dropped, spaces are collapsed; an empty tag keeps the historical 3-column CSV.

This capture is a convenience, not a Microsoft-documented method. Every supported Autopilot path assumes the device is already running Windows, or that the hash comes from the OEM. If you need the official paths — OEM/CSP registration through Partner Center, or Get-WindowsAutopilotInfo.ps1 (with -OutputFile, or -Online straight to Intune, which also works during OOBE via Shift+F10) — start from https://learn.microsoft.com/en-us/autopilot/add-devices.


Build

Requires the .NET SDK 10 (no MSBuild, no Visual Studio):

build.cmd                      :: win-x64 AND win-arm64
build.cmd win-x64              :: one architecture

For each architecture two variants are produced side by side:

Variant Use it when
publish\ (plain) the exe is embedded into boot.wim, a compressed ISO or any archive
publish-compressed\ (single-file compression) the exe is stored loose (USB stick, download)

Both end up at roughly the same size inside a compressed container; compression only costs RAM.

Runtime environment

  • Windows 10/11 x64, or WinPE amd64/arm64.
  • Nothing to install: the .NET runtime is bundled.
  • In WinPE, wpeutil-based actions (shutdown, reboot, network init) need the WinPE environment; on a normal desktop they report that they are unavailable.

Running it from WinPE

A WinPE image starts a GUI shell from Windows\System32\winpeshl.ini; two lines are enough:

[LaunchApps]
%windir%\system32\Launcher.exe

Both files belong in the image's Windows\System32: that is where the line above points, and the launcher reads apps-config.json from its own folder.

The launcher brings the network up itself (networkInit) — behind a small progress dialog instead of a visible console — so the image needs neither startnet.cmd nor a separate wpeutil InitializeNetwork.

Auto-starting your own applications. Do not stack additional [LaunchApps] entries: the launcher is the shell, and a second entry only races it. Put "startup": true on the entry in apps-config.json instead — startup apps run in the order they appear in apps, one after another, once the bar has painted.

Background reading. Microsoft's Windows PE documentation covers the theory and every way to build the media (copype, DISM, the WinPE add-on): https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-intro?view=windows-11

Configuration

apps-config.json is both the configuration and the manual — every key is documented inline, and it is meant to be edited per deployment. See the file itself.

License & disclaimer

Released under the MIT License — see LICENSE.

The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be liable for any claim, damages, or other liability arising from, out of, or in connection with the software or its use. You are free to use, modify and redistribute the codebase at your own discretion and at your own risk; all responsibility and liability rest with you.

Third-party components are listed in THIRD-PARTY-NOTICES.md.

Trademarks

Microsoft, Windows, Windows PE / WinPE and other Microsoft product names are trademarks of the Microsoft group of companies. This project is an independent work and is not affiliated with, authorized, sponsored, or endorsed by Microsoft Corporation. All other trademarks are the property of their respective owners.

Please do not turn WinPE into a desktop

WinPE is a preinstallation/rescue environment, not a general-purpose operating system. Using this launcher to build a full desktop experience on top of WinPE (persistent shell, kiosk or digital-signage use, general daily use, …) is not recommended and may violate Microsoft's licensing and usage terms for the Windows Preinstallation Environment. Recent WinPE builds keep a session alive for up to 240 hours, which makes an always-on boot environment technically easy to leave running — that is still not a supported way to operate, and this project does not endorse it.

Use the launcher for what it is meant for: temporary rescue, diagnostics, deployment and recovery.

About

A lightweight, native taskbar-style launcher for Windows PE (WinPE) amd64 and Windows x64. It opens applications and scripts, exposes system tools (Wi-Fi, BitLocker, clock sync), and adds a built-in System Diagnostic, a full-screen Screenshot tool, and an optional Smart Assistant that chats with any OpenAI-compatible LLM

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages