-
Notifications
You must be signed in to change notification settings - Fork 1
Home
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.
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.
- 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.
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.
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).