How I used GLPI to find which PCs could move to Windows 11: by checking the processor generation
Nothing fancy was needed: GLPI's inventory, the processor generation (8th and up) and, where necessary, a couple of BIOS settings.
When you’re asked which PCs can move to Windows 11, it’s easy to assume you need to measure everything on every machine. I solved it in a much simpler way: I pulled each PC’s processor from the GLPI inventory and checked the generation. 8th gen and up can be upgraded, and where necessary, all that was left was changing a couple of BIOS settings.
Everything here is generic: no server names and nothing about the organization.
It isn’t the complete official check, and I’ll get to where it falls short. But as a first filter, it quickly tells you how many PCs can be upgraded and how many would have to be replaced. And it’s no small question: Windows 10 support ended on October 14, 2025, and the paid business updates (ESU) run until October 2028 at most.
1. Why the processor is enough for a first pass
Windows 11 requires this:
| Requirement | Minimum | In GLPI? |
|---|---|---|
| Processor | 2 cores, 1 GHz, model on Microsoft’s list | The model, yes |
| Memory | 4 GB | Yes |
| Disk | 64 GB | Yes |
| Firmware | UEFI with Secure Boot | Not in the regular inventory |
| TPM | Version 2.0 | Not in the regular inventory |
It looks like two important pieces are missing, but here’s the key: the processor is the only item in that table you can’t change without changing the PC. RAM can be upgraded, disks can be replaced, and PCs with processors from that era usually have a TPM built into the chip itself, even if it’s sometimes switched off.
That’s what makes the rule useful: the processor separates the PCs worth looking at from the ones that aren’t.
2. Get the list from GLPI
With the agent installed on your PCs (the basic GPO article shows how to roll it out), there’s nothing else to install:
- Go to
Assets > Computers. - Add columns for processor, memory, operating system and last inventory date.
- Filter by operating system to keep the Windows 10 machines.
- Export the result to CSV.
The exact column names vary a bit between versions and languages. With only a few PCs, you can sort by processor and just read it.
3. How to read the generation
It’s in the model number:
| Model | How to read it | Generation |
|---|---|---|
i3-4130 |
The first digit | 4th: no |
i7-7700 |
The first digit | 7th: no |
i5-8250U |
The first digit | 8th: yes |
i7-10700 |
The first two, with five digits | 10th: yes |
i5-1135G7 |
The first two, with a G, U, P or H | 11th: yes |
Watch out for the last one: an i5-1135G7 starts with 1, but it’s 11th gen, not 1st.
On AMD, the equivalent is that Microsoft’s list starts at the Ryzen 2000 series. A Ryzen 5 3600 qualifies and a Ryzen 7 1700 doesn’t.
4. With a lot of PCs, let a script do it
To avoid going row by row, this script reads the GLPI CSV and adds a column with the result:
param(
[string]$Csv,
[string]$Column = 'Processor',
[string]$Output = 'win11-by-cpu.csv'
)
function Get-Verdict([string]$cpu) {
if ($cpu -match 'Core\(?T?M?\)?\s+Ultra') { return 'Eligible' }
if ($cpu -match '\bi[3579]-(\d{3,5})([A-Z]\w*)?') {
$num = $Matches[1]; $suffix = $Matches[2]
if ($num.Length -eq 5) { $gen = [int]$num.Substring(0, 2) } # i7-10700, i5-12400
elseif ($num.Length -eq 3) { $gen = 1 } # i5-650
elseif ($num[0] -eq '1' -and $suffix -match '^[GUPH]') { # i5-1135G7, i7-1260P
$gen = [int]$num.Substring(0, 2)
}
else { $gen = [int]$num.Substring(0, 1) } # i5-8250U, i3-4130
if ($suffix -match '^X') { return 'Check' } # X series: separate list
if ($gen -ge 8) { return 'Eligible' } else { return 'Not eligible' }
}
if ($cpu -match 'Ryzen \d (?:PRO )?(\d)\d{3}') {
if ([int]$Matches[1] -ge 2) { return 'Eligible' } else { return 'Not eligible' }
}
return 'Check' # Xeon, Pentium, Celeron, Threadripper, odd names
}
$pcs = Import-Csv $Csv -Delimiter ';' | ForEach-Object {
$_ | Add-Member -NotePropertyName Win11 -NotePropertyValue (Get-Verdict $_.$Column) -PassThru
}
$pcs | Export-Csv $Output -Delimiter ';' -NoTypeInformation -Encoding UTF8
$pcs | Group-Object Win11 | Select-Object Name, Count
.\win11-by-cpu.ps1 -Csv .\glpi.csv -Column 'Processor'
Set -Column to whatever that column is called in your CSV, and change -Delimiter if it uses a different separator. I tested it with a list of 19 sample models, not a real export, so check the first few rows before trusting it.
Anything it can’t classify goes to Check rather than being guessed, because only some Xeon, Pentium and Celeron models are on the list. Look those up on the Intel list.
5. What gets fixed in the BIOS
With a valid processor, what’s usually left is two settings:
- TPM: depending on the vendor it shows up as
Intel PTT,AMD fTPM,TPM DeviceorSecurity Chip. It has to be on. - Secure Boot: requires booting in UEFI mode, normally with
CSMorLegacyturned off.
Before going into the BIOS, you can check the PC’s state from an admin console:
Get-Tpm
Confirm-SecureBootUEFI
I didn’t need anything else, but there’s one case worth knowing about even if you never run into it. If a PC boots in Legacy mode from an MBR disk, don’t just switch to UEFI, because it will stop booting. According to Microsoft’s documentation, you have to convert the disk first:
mbr2gpt /validate /allowFullOS
mbr2gpt /convert /allowFullOS
Then you can switch the BIOS to UEFI and enable Secure Boot. Try it on a test PC first, with a backup of whatever matters. And if you have several identical machines, what you work out on one applies to the whole model.
6. Where the rule falls short
- It’s a shortcut, not the official list. The generation gives you a quick answer, but Microsoft’s list is what decides.
- The odd older model can be an exception. Intel’s list includes the 7000 X-series, for example, which is why the script sends it to
Check. - It doesn’t tell you the TPM state. An
EligiblePC may have its TPM off or, rarely, not have one at all.
For doubtful cases, Microsoft publishes HardwareReadiness.ps1, a script that checks disk, memory, TPM, processor and Secure Boot, and gives you CAPABLE or NOT CAPABLE with the reason. You run it as administrator on the PC itself. It dates from 2021, and some admins warn that it can flag certain recent CPUs as unsupported, so check the list before believing it.
If you wanted TPM and Secure Boot inside GLPI, the GLPI Inventory plugin has a Collect task that reads the registry and WMI. I didn’t need it for this first pass.
What not to do
- Misreading newer models. An
i5-1135G7isn’t 1st gen: filter by eye and you’ll throw out PCs that qualify. - Writing a PC off without checking the BIOS. With a valid processor, it’s often just a matter of enabling two options.
- Trusting a stale inventory. Check the last inventory date: a PC that hasn’t checked in for months may not even exist anymore.
- Forgetting RAM and disk. The processor is what matters most, but a PC with under 4 GB or 64 GB needs something more too.
- Bypassing the requirements to make the numbers work. There are tricks to install on unsupported PCs, but Microsoft doesn’t support them and doesn’t guarantee updates.
Summary
- Pull the processor of each Windows 10 PC from GLPI.
- 8th gen and up on Intel, Ryzen 2000 and up on AMD: it can be upgraded.
- If it doesn’t pass, check TPM and Secure Boot in the BIOS before thinking about buying.
- Odd cases go against Microsoft’s list or through its script.
You don’t need to build a system to answer this question: the inventory you already have and knowing how to read a processor name get you a long way.
Did it stick?
Three quick questions. Each right answer is worth 10 XP.