Windows 11 Readiness Custom Inventory and Report
search cancel

Windows 11 Readiness Custom Inventory and Report

book

Article ID: 271003

calendar_today

Updated On:

Products

Inventory Solution

Issue/Introduction

Inventory Solution or IT Management Suite does not currently offer a complete Windows 11 readiness report that can be used to identify computers that are available to be upgraded to Windows 11.

Environment

Release: 8.6

Resolution

This was originally created by a third party not affiliated with Broadcom.  The original script is located at the following URL:  Windows 11 Readiness with Symantec Client Management Suite  There have been some changes with the product, and the way the script is written, will not work in version 8.6+.  

The original script used the following PowerShell code to create a custom data class:

$objIRInstance = $nse.AddDataClass('Win11 Hardware Readiness')

Using that logic is no longer possible and will cause an error when the NSE is processed similar to the Unknown inventory class (AutoClassRegistration=0), the entire XML node skipped: 'Win11 Hardware Readiness' 

In addition, the SQL query example required some updating.

The updated script is attached to this KB article.  It's important to note that this custom inventory script is not supported by Broadcom support.

The first step is to create a new custom data class:

Go to Settings > Discovery and Inventory > Inventory Solution > Manage Custom Data Classes and click the New data class button

Name the new data class:  Win11_Hardware_Readiness

Click on Add attribute and add the following attributes, one at a time:

  • returnCode
  • returnReason
  • returnResult
  • logging

Save the changes and copy the GUID from the top as shown in the following screenshot

Download the attached Windows11Readiness.ps1 script and open it to edit

Find the comment #Replace with GUID of Custom Dataclass and replace the GUID with the GUID that you copied in the last section:

Save your changes

Create a new script task in your console, with the script option PowerShell.

You will most likely have to create a new client task job, which will include the option to Disable PowerShell Signing Policy and then Enable PowerShell Signing Policy once completed.  Similar to what is shown in the following screenshot:

Once the script has completed executing on endpoints, you can use your own SQL query to report on the data.  One example would be the following:

select vc.Name, vc.[OS Name], hr.*, cs.Manufacturer, cs.Model
from vcomputer vc
join Inv_Win11_Hardware_Readiness hr on hr._ResourceGuid = vc.Guid
join vHWComputerSystem cs on cs._ResourceGuid = vc.Guid

Attachments

1691072521258__Windows11Readiness.ps1 get_app