Find Windows 11 Compatible Devices With PDQ Inventory

Brock Bingham candid headshot
Brock Bingham|October 7, 2021
win 11 minimum requirements
win 11 minimum requirements

Windows 11 is here, and with it, a pretty restrictive list of minimum system requirements. Some of these requirements are geared towards protecting users and their data by beefing up security measures, which seems reasonable in our world of rampant cyberattacks and vulnerabilities. Others seem designed to ensure Windows 11 provides a buttery smooth user experience. Regardless of the reasons, these strict requirements have many users and sysadmins wondering if they'll be able to upgrade to Windows 11. If you're wondering if your devices made the cut, PDQ Inventory is here to help.

Windows 11 Minimum System Requirements

We've covered the details of Windows 11's minimum system requirements in a couple of other articles, which you can find here and here, so I won't bore you with my thoughts on the requirements. Instead, let's dive right into the details.

  • Processor:  1 gigahertz (GHz)or faster with 2 or more cores on a compatible 64-bit processor or System on a Chip (SoC)

  • RAM:  4 gigabyte (GB)

  • Storage:  64 GB or larger storage device

  • System firmware:  UEFI, Secure Boot capable

  • TPM:  Trusted Platform Module (TPM) version 2.0

  • Graphics card:  Compatible with DirectX 12 or later with WDDM 2.0 driver

  • Display:  High definition (720p) display that is greater than 9" diagonally, 8 bits per color channel

Additionally, here are the officially supported processors in Windows 11.

Windows 11 Health Check App

In case you're wondering, yes, Microsoft does offer a utility that checks if your computer meets the minimum requirements of Windows 11. You can find the utility on Microsoft's Windows 11 webpage.

Towards of bottom of the page, you'll find an option to download the PC Health Check app.

win 11 minimum requirements 1

Once you've downloaded the MSI, double-click it to begin the setup.

  1. Accept the terms of the license agreement and click Install.

    win 11 minimum requirements 2
  2. When the installation finishes, make sure Open Windows PC Health Check is selected, then click Finish.

  3. The PC Health Check application should launch and display the PC health at a glance page. Click Check now in the Introducing Windows 11 panel.

    win 11 minimum requirements 3
  4. A new window will open up, indicating if your computer meets Windows 11 minimum requirements.

    win 11 minimum requirements 4
  5. As you can see, my virtual machine does not meet the minimum requirements, which is expected. This screen also details which components failed to meet the requirements. If your device passes, you'll be shown this screen.

    win 11 minimum requirements 5

I've highlighted this application because, for many home users, this is a simple way to find out if their personal computers qualify for the upgrade. But, if you're a sysadmin and have hundreds or thousands of machines you manage, running this application on each computer is not a very viable option, and that's where PDQ Inventory comes in.

Windows 11 Minimum Requirements PowerShell Script

The PowerShell scanner in PDQ inventory makes it possible to scan for just about anything on a Windows device. The versatility of the PowerShell scanner is unmatched, which is why we'll use it to scan for Windows 11's minimum requirements.

Here's the script that we'll be using for the scanner. It was created by Jordan and showcased during the PDQ Window 11 webcast, though the version we'll be using has been slightly modified. You can also find the script in the bonus content section of the PDQ GitHub page

###Configure parameters [CmdletBinding()] param (     [int]$TPMminVer = 1.2,     [int]$DirectxVer = 12,     [int]$WDDMVer = 2.0 ) ###Disable IE first run $keyPath = 'Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Main' if (!(Test-Path $keyPath)) { New-Item $keyPath -Force | Out-Null } Set-ItemProperty -Path $keyPath -Name "DisableFirstRunCustomize" -Value 1 ###Generate CSV from Microsoft approved processor list $URI = "https://docs.microsoft.com/en-us/windows-hardware/design/minimum/supported/windows-11-supported-intel-processors","https://docs.microsoft.com/en-us/windows-hardware/design/minimum/supported/windows-11-supported-amd-processors","https://docs.microsoft.com/en-us/windows-hardware/design/minimum/supported/windows-11-supported-qualcomm-processors" $table = @() $proc =  Get-CimInstance -class CIM_Processor | Select-Object Name foreach($Address in $URI){     $Result = Invoke-WebRequest $Address     $data = ($Result.ParsedHtml.getElementsByTagName("table") | Select-Object -First 1).rows     forEach($row in $data){         if($row.tagName -eq "tr"){             $thisRow = @()             $cells = $row.children             forEach($cell in $cells){             if($cell.tagName -imatch "t[dh]"){                     $thisRow += $cell.innerText                 }             }             $table += $thisRow -join ","         }     } } $final = $table | ConvertFrom-Csv -Delimiter "," $ProcCompatible = $false foreach($cpu in $final.model){          if($proc.name -like "*" + $cpu + "*"){         $ProcCompatible = $true         break     } } ###Get Procossor $proc =  Get-CimInstance -class CIM_Processor | Select-Object Name $ProcCompatible = $false ###Compare processor to approved list foreach($cpu in $final.model){          if($proc.name -like "*" + $cpu + "*"){         $ProcCompatible = $true         break     } } ###Test TPM $TPMCompatible = $false Try{$GetTPM = (Get-tpm).TPMPresent} Catch{} If($GetTPM -eq $true){     $TPMVer = Get-CimInstance -Namespace "root/cimv2/Security/MicrosoftTPM" -ClassName win32_tpm | Select-Object specversion     If($TPMVer.specversion.Split(',')[0] -ge $TPMminVer){         $TPMCompatible = $true     } } ###Test UEFI $UEFICompatible = $false Try {$UEFI = Confirm-SecureBootUEFI} Catch{} If($UEFI){     $UEFICompatible = $True } ###Test Direct X 12 Start-Process -FilePath "C:\Windows\System32\dxdiag.exe" -ArgumentList "/dontskip /whql:off /t C:\dxdiag.txt" -Wait ###Load File into file stream $file = New-Object System.IO.StreamReader -ArgumentList "C:\dxdiag.txt" ###Setting initial variable state $Directx12Compatible = $false $WDDMCompatible = $false ###Reading file line by line try {     while ($null -ne ($line = $file.ReadLine())) { ###Mark start of applied policies         if ($line.contains("DDI Version:") -eq $True) {             if($line.Trim("DDI Version: ") -ge $DirectxVer){                 $Directx12Compatible = $true             }         }         elseif ($line.contains("Driver Model:") -eq $True) {             if($line.Trim("Driver Model: WDDM ") -ge $WDDMVer){                 $WDDMCompatible = $true             }         }     } } finally {     $file.Close()     Remove-Item "C:\dxdiag.txt" -Force } [pscustomobject]@{     Processor = $ProcCompatible     TPM = $TPMCompatible     UEFI = $UEFICompatible     Directx12 = $Directx12Compatible     WDDM = $WDDMCompatible  }

Here's a simplified breakdown of what this script is doing. If you want the complete breakdown straight from Jordan himself, make sure you check out the webcast linked above.

The script starts with designating the specific parameters we'll be checking against. In this case, TPM 2.0, DirectX 12, and WDDM 2.0. You can modify these parameters if you need or want. For example, you can change TPM to check for version 1.2, but we'll talk more about that in a moment.

Next, since this script requires Internet Explorer to check the list of approved processors from Microsoft's website, the script disables IE's first run wizard, which could cause issues with the lookup. With the first run wizard disabled, the script creates a CSV file containing the approved processors from Microsoft. The script then runs a GetCimInstance query to return the processor and compares it to the processors listed in the CSV file.

Next, the script runs another GetCimInstance query to return the TPM version of the machine, comparing it to the TPM version designated in the parameters we set.

The script then runs the Confirm-SecureBootUEFI cmdlet to ensure the machine meets the UEFI requirement.

Lastly, the script calls dxdiag.exe and exports its results to a text file. The script then starts the StreamReader to read through the text file, line by line, looking for DDI Version and the Driver Model, comparing the results to the DirectX and WDDM parameters set at the beginning of the script.

You'll notice that we don't scan for all of the Windows 11 minimum requirements because some of the required data is already collected by PDQ Inventory by default, such as memory and storage requirements.

Creating A Scanner In PDQ Inventory

Now that we have our PowerShell script, we can use it to create a scanner in PDQ Inventory.

  1. With PDQ Inventory open, click the Scan Profiles button.

    win 11 minimum requirements 6
  2. Click New.

    win 11 minimum requirements 7
  3. Enter a name for the scan profile, for example, Windows 11 Compatibility Checker.

  4. Click Add > PowerShell.

    win 11 minimum requirements 8
  5. Enter a name for the scanner. You can use the same name used in step 3.

  6. Next, you have the option to either point the scanner to a .ps1 file or enter the script directly into the scanner. I've already saved a .ps1 file for this script, so I'll point the scanner to that file.

    win 11 minimum requirements 9
  7. Click OK twice to finish creating the scanner.

With the scanner created, we can begin running it against our workstations.

  1. Select the Workstations collection from the navigation tree in PDQ Inventory. We're targeting only our workstations because we aren't worried about our servers being compatible with Windows 11.

    win 11 minimum requirements 10
  2. Right-click on the Workstations collections and click Scan Collection > (Your Windows 11 Scanner Compatability Scanner).

    win 11 minimum requirements 11

The scanner will run through the computers in the workstations collections. To view the result once the scan finishes, double-click on one of the computers to open the computer details window, then click on the PowerShell page from the list on the left.

win 11 minimum requirements 12

You can see from this image that the processor, UEFI, and Directx12 all passed the compatibility check. Unfortunately, the TPM and WDDM requirements weren't met, which isn't surprising since I'm running this against virtual machines.

Here are the results from running the same scanner against a physical machine.

win 11 minimum requirements 13

Creating A Windows 11 Dynamic Collection

Now that the scanner has finished and we've collected all the information we needed to determine Windows 11 compatibility, the last thing we need to do is create a dynamic collection of the computers that meet all of the requirements.

  • In PDQ Inventory, click New Dynamic Collection.

    win 11 minimum requirements 14
  • Name the dynamic collection.

  • Add the following filters.

    win 11 minimum requirements 15
  • Click OK when finished.

Once you've finished creating the collection, any computers that meet the requirements will automatically be populated into the collection, letting you easily identify which computer can upgrade to Windows 11.

win 11 minimum requirements 16

What If A Computer Doesn't Meet The Minimum Requirements

If you really want to jump into Windows 11 but your computer or computers don't meet the minimum requirements, all hope is not lost. While you may never be able to upgrade from Windows 10 to Windows 11 via Windows updates, you can download the Windows 11 ISO and manually install it right now on un-qualified machines, and it'll probably run just fine. However, there is a catch.

According to Microsoft, if you install Windows 11 on a device that doesn't meet the minimum requirements, Windows 11 will run in an "unsupported state." Microsoft further clarified that devices in an "unsupported state" are not entitled to receive security and feature updates. While this seems like a big deal, and it potentially could be, I find it hard to believe that Microsoft wouldn't provide updates for these types of devices. More than likely, this is just Microsoft's way of avoiding responsibility for these devices if any issues occur. Still, I would use caution going this route, especially if you are dealing with company equipment and not personal equipment.

Wrapping Up

If you're running from machine to machine trying to figure out which computers qualify for Windows 11, you're working too hard. Let PDQ Inventory and the PowerShell scanner help you identify which computers meet the Windows 11 minimum requirements.

Brock Bingham candid headshot
Brock Bingham

Born in the '80s and raised by his NES, Brock quickly fell in love with everything tech. With over 15 years of IT experience, Brock now enjoys the life of luxury as a renowned tech blogger and receiver of many Dundie Awards. In his free time, Brock enjoys adventuring with his wife, kids, and dogs, while dreaming of retirement.

Related articles