Guides+45 XP

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.

IvánPublished on 6 minLeer en español

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:

  1. Go to Assets > Computers.
  2. Add columns for processor, memory, operating system and last inventory date.
  3. Filter by operating system to keep the Windows 10 machines.
  4. 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 Device or Security Chip. It has to be on.
  • Secure Boot: requires booting in UEFI mode, normally with CSM or Legacy turned 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 Eligible PC 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-1135G7 isn’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

  1. Pull the processor of each Windows 10 PC from GLPI.
  2. 8th gen and up on Intel, Ryzen 2000 and up on AMD: it can be upgraded.
  3. If it doesn’t pass, check TPM and Secure Boot in the BIOS before thinking about buying.
  4. 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.

Mini quiz

Did it stick?

Three quick questions. Each right answer is worth 10 XP.

  1. The inventory shows an Intel Core i5-1135G7. Which generation is it?
  2. A PC with an 8th-gen i5 fails the Windows 11 check. What do you look at first?
  3. A PC boots in Legacy mode from an MBR disk. What happens if you just switch the BIOS to UEFI?
  • #glpi
  • #windows-11
  • #inventory
  • #powershell
  • #tpm
Esc