Skip to content
Rod Christiansen edited this page Sep 5, 2026 · 3 revisions

BootstrapMate for Windows

BootstrapMate is an MDM-agnostic bootstrapping tool for Windows. It downloads a JSON or YAML manifest over HTTPS and installs the packages that manifest lists, in two phases named setupassistant and userland. It is a provisioning tool, not an ongoing config-management tool: once the manifest is done, BootstrapMate hands the device off to whatever manages it day to day, which on Windows is normally Cimian.

Who this is for

Windows fleet administrators who need software on a device early — during Out-of-Box Experience (OOBE) and the Autopilot Enrollment Status Page (ESP), before the ongoing management agent exists or has had a chance to run. If you have ever shipped a first-boot script to install the thing that installs everything else, that is the job BootstrapMate does, with logging, per-phase status in the registry, Authenticode verification of MSI and EXE installers, and a daily scheduled task that re-runs the manifest until it converges.

It is deliberately small. There is no Windows Service, no dependency graph, no reboot handling and no state carried between runs beyond the registry status keys.

Start here

  • Getting Started — install the MSI, write a one-package manifest, run it, and read the log and registry to confirm what happened. Do this first.
  • Overview — the moving parts: the CLI, the GUI, the MSI, the scheduled task, the manifest, the handoff target.
  • How It Works — the real execution order of a run, and why "device phase" and "user phase" are a consequence of when you invoke the tool, not of anything the tool detects.
  • Manifest Reference — every key the parser actually reads. Shorter than you expect.
  • Troubleshooting and Gotchas — read this before you file a bug. Several documented knobs are inert, and a run can exit 0 with every package failed.

New to the vocabulary, or arriving from Munki? Start at the Glossary, which spells out how BootstrapMate's "manifest" differs from a Munki or Cimian manifest.

The macOS sibling

A macOS implementation of BootstrapMate exists at https://github.com/bootstrapmate/bootstrapmate-macintosh/wiki. It carries the same page names as this wiki, so you can move between the two. The two implementations share the concept and the manifest vocabulary; they do not share code, and they differ in real ways — phase names, verification model and handoff target all diverge. Where a page here describes something the macOS build does differently, it says so and links the equivalent page.

Getting help

Open an issue on this repository: https://github.com/bootstrapmate/bootstrapmate-windows/issues. Include the newest log from C:\ProgramData\ManagedBootstrap\logs, the output of Get-ItemProperty 'HKLM:\SOFTWARE\Cimian\BootstrapMate\Status\SetupAssistant', and the manifest you ran (with any credentials removed).

See also

Clone this wiki locally