WIN-029 · Script
Windows 11 Upgrade Readiness Check
Checks TPM, Secure Boot, UEFI, CPU, RAM and disk against the Windows 11 hardware requirements and reports whether the device looks ready.
What it does
Report only. Nothing is changed. Checks:
- Firmware: UEFI (legacy BIOS fails)
- Secure Boot: capable (required) and enabled (warning if off)
- TPM: present, enabled and version 2.0
- CPU: 64-bit, 2 or more cores, 1 GHz or faster, and an approximate
generation check (Intel Core 8th gen or later, AMD Ryzen 2000 or later, Qualcomm Snapdragon). Processors the script cannot place are marked "Check" so you can compare them with Microsoft's supported CPU list.
- RAM: 4 GB or more
- System disk: 64 GB or more, and at least -MinFreeGB free on the system drive
Where Windows has already run its own compatibility appraisal, that result is logged too.
Each check is Pass, Fail, Warn or Check. The device is reported as Ready only when no check is Fail or Check. Devices already on Windows 11 are reported and exit 0. A one-row CSV is written to -ReportDir unless -NoReportFile is used. Runs silently as SYSTEM from any RMM or Intune. No prompts, no user interaction.
Requirements
Windows PowerShell 5.1+, run as SYSTEM or local admin (TPM and Secure Boot queries need admin rights)
How to run it
- Run as: SYSTEM or a local administrator
- Run from: any RMM or MDM, Intune, a Group Policy startup script, a scheduled task, or an elevated PowerShell window
- Script type: PowerShell, 64-bit
- User interaction: none; the script never prompts
- Timeout: 10 minutes (30 for Windows Update installs)
Settings
| Name | What it does | Options | Default |
|---|---|---|---|
| MinFreeGB | Free space on the system drive needed for the upgrade, in GB. Default 20. | 20 | |
| ReportDir | Folder for the CSV report. Default C:\ProgramData\Runbookia\Reports. | C:\ProgramData\Runbookia\Reports | |
| NoReportFile | Do not write the CSV, only the log. | False |
Exit codes
- 0 = Ready, or already on Windows 11
- 1 = Not ready, or needs a manual check (see the log for which check)
- 2 = Script error
Testing steps
- Run it on one test device and check the output and log.
- Check the exit code: 0 = OK, 1 = needs attention, 2 = error (see log), 9 = this copy is past its Valid until date.
- Roll out to a small group next, then everyone.
Rollback steps
Report only. Nothing is changed, so nothing needs to be rolled back.
Version and change log
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | November 2026 | First release. |