Important Notice: On February 29th, this community was put into read-only mode. All existing posts will remain but customers are unable to add new posts or comment on existing. Please feel to join our Community Discord for any questions and discussions.

Find Windows 11 Compatible Devices With PDQ Inventory - Issue checking CPU

Hi, I'm trying to run the Windows 11 Minimum Requirements PowerShell Script for PDQ Inventory from this article and running into an issue with the first phase, the CPU check. If I comment the entire CPU section out the script runs ok. If I leave it in the script hangs and eventually times out without returning any data.  Not really finding anything in the Win AdminArsenal logs on the client that can point me in the direction of why this might be failing, just a lot of: "Waiting for process to end..." in the Service.Log.

IE 11 is stripped from my Win 10 machines.  I tried adding this feature back on a test system and the script still timed out.

Are there any logs or does anyone have any suggestions of what I can look for to find out why this script is failing when running the CPU checks?



Date Votes
  • To add to this, I've narrowed the issue down to the Invoke-WebRequest lookups against the Microsoft sites.  If these commands are run individually after a while a pop-up occurs about an error in a script on the page. Have to manually click Yes to close for the command to complete.  To work around this I added the Text only version of Google's cached copy of these sites. Not ideal as the page is not going to update as compatible CPUs added.

    Anyone have any pointers that I can try to get the InvokeWebRequest to work against the live Microsoft sites to bypass the script error on these pages?

  • Dbet Did you find a solution to this? I see the official blog article has been updated to remove the powershell script. TIA

  • Gakamor on reddit uses this solution:

    I use Microsoft's Windows 11 Hardware Readiness script with a minor modification. Just comment out the last line of code before the Signature block and add a few lines of code. Then use that modified script as a PowerShell Scanner in Inventory.

    #$outObject | ConvertTo-Json -Compress
    if ($outObject.returnResult -eq $CAPABLE_CAPS_STRING) {
        $WIN11COMPATIBLE = $true
    else {
        $WIN11COMPATIBLE = $false
        IncompatibleItems = $outObject.returnReason