Repository navigation
Bootstrap Mode
Cimian's bootstrap system provides zero-touch, MDM-initiated software deployment for Windows endpoints. A single flag file on disk triggers a full managedsoftwareupdate run within seconds, whether the client is freshly provisioned or already enrolled.
The system has two cooperating components:
-
managedsoftwareupdate.exe(cli/managedsoftwareupdate/Program.cs) exposes--set-bootstrap-modeand--clear-bootstrap-modeflags that create or remove the bootstrap flag file atC:\ProgramData\ManagedInstalls\.cimian.bootstrap. No scheduled tasks, no service registration - just the file. -
CimianWatcher service (
cli/cimiwatcher/Program.cs) is a native Windows service that polls the bootstrap flag file every 10 seconds. When a new or modified flag file is detected, it invokesmanagedsoftwareupdate.exe --auto --show-statusto run a full deployment cycle. Runs as SYSTEM, auto-restarts on failure.
Both components monitor the same file. No scheduled tasks are involved. (Earlier versions used a CimianBootstrapCheck scheduled task as a secondary trigger - this has been removed entirely; see CimianWatcher Service for the cleanup path for legacy installations.)
-
Path:
C:\ProgramData\ManagedInstalls\.cimian.bootstrap - Contents: timestamp of when bootstrap mode was enabled. Body is informational only - the presence of the file is what matters.
-
Companion flag:
.cimian.headlessat the same path selects headless (non-interactive) execution.
- MDM drops
.cimian.bootstrapvia Win32 app, PowerShell script, or proactive remediation - CimianWatcher detects the file within 10 seconds
- CimianWatcher invokes
managedsoftwareupdate.exe --auto --show-status - Deployment runs end-to-end
-
managedsoftwareupdateclears the flag file on successful exit
sudo managedsoftwareupdate.exe --set-bootstrap-mode
# CimianWatcher picks it up within 10 seconds and runs
# Clear the flag manually if needed:
sudo managedsoftwareupdate.exe --clear-bootstrap-mode- Device image or provisioning package deploys Cimian with CimianWatcher service registered
- First-boot script drops
.cimian.bootstrap - CimianWatcher runs the initial deployment with relaxed thresholds (longer timeouts, no install-window gating)
- Flag file is cleared after first successful run
| Metric | Value |
|---|---|
| Response time | ~10 seconds (poll interval) plus execution time |
| CimianWatcher memory | ~5 MB |
| CimianWatcher CPU | less than 0.1% idle |
| Reliability | Service auto-restart on failure; polling survives sleep/wake |
The flag-file pattern is designed to be driven by any system that can write a file:
- Microsoft Intune - Win32 app install scripts, proactive remediation scripts, PowerShell scripts
- MDM policies - any CSP that can run a PowerShell command
- Orchestration tools - Azure Arc, Configuration Manager, custom RMM tooling
- Local automation - Group Policy, scheduled tasks outside Cimian, manual admin flows
No MDM-specific code lives in Cimian itself - the flag file is the entire API.
- CimianWatcher comprehensive guide - service internals, testing, and overview
- CimianWatcher dual-mode guide - GUI vs headless trigger modes
- CimianWatcher enterprise deployment - MSI custom actions and scale scenarios
- Self-update management - how CimianWatcher handles self-update flag files alongside bootstrap
Cimian — managed software deployment for Windows, modelled on Munki. Apache License 2.0. Source and issues at windowsadmins/cimian.
Start here
Repository
Authoring packages
- Installation Checks
- Uninstall Methods
- Uninstallable Key
- Conditional Items
- Importing EXE Bundle Installers
- PowerShell Execution Policy
- Chocolatey Shim Prevention
- Managed Profiles and Apps
Client runtime
Diagnostics
- Troubleshooting
- Logging
- Error Reporting
- Item Source Traceability
- CimiTrigger Troubleshooting
- Privilege Elevation
Integrations
Contributing