01 · Apps
Know what was installed.
Built-in and repository apps have separate groups. Review recorded versions, exit codes, durations and cache outcomes alongside their installation status.
Your deployment, recorded
OSDStage automatically turns deployment results into a readable HTML report and structured JSON. Review apps, configuration and Windows Update in one place, even when the device is offline.
Included in RC4 · No extra staging command
Illustrative example · fictional data
Execution succeeded. Restart required.
01 · Apps
Built-in and repository apps have separate groups. Review recorded versions, exit codes, durations and cache outcomes alongside their installation status.
02 · Configuration
Separate cards show your settings and content. Expand supported component details for fonts, certificates, registry, services, file operations and more.
03 · Updates
Review individual update results, required restarts and follow-up scan indications. A successful pass can still leave updates that become applicable later.
Status with context
The report separates execution from follow-up work. Matching evidence connects the details to the same deployment; missing or stale details are shown honestly.
No recorded restart or update follow-up requires attention. This describes the recorded run.
Execution may have succeeded, while a restart, skipped result, missing evidence or another update scan needs review.
Review the affected package and local runtime logs. Independent work can still have succeeded.
After SetupComplete · On the deployed PC
The default folder is %ProgramData%\OSDStage\Results. Open the HTML on the deployed PC or copy it to a preparation PC with a browser. If you configured a different runtime result path, the report sits beside that result file.
$results = Join-Path $env:ProgramData 'OSDStage\Results'
Start-Process (Join-Path $results 'DeliveryReport.html')In OOBE, you can inspect the JSON from an elevated console after the runner finishes. If a browser is not available yet, copy the HTML to your preparation PC.
$report = Get-Content (Join-Path $results 'DeliveryReport.json') -Raw |
ConvertFrom-Json
$report | Format-List Status, ExecutionStatus, RebootRequired
$report.Checks | Format-Table Name, Passed, Detail -WrapHTML
A self-contained file with no scripts, remote fonts or external assets. Expand the details without an internet connection.
Explore fictional example ↗JSON
The same report identity and results in structured form, with numeric durations for your own analysis.
Download example JSON ↓The report is written after runner completion, or after terminal PreInstall failure. It is a record of that execution: it does not refresh after a later reboot or certify device health, active driver binding, complete patch coverage or Autopilot enrollment.
Credential and configuration values are omitted, but device/component names, certificate identifiers and target paths remain. Review a real report before sharing it. Keep the original runtime logs for detailed troubleshooting.