Collecting computer inventory using WSUS

I was recently tasked with collecting a list of software installed in my environment (desktops and servers). In the past, I would have used a WMI script to query the computers and export it into a database or spreadsheet. However, the more recent Windows versions block all remote connections by default, meaning my WMI script would fail.
A little research made me began to look at WSUS (which was already used to patch our environment). I realized there was a view (PUBLIC_VIEWS.vComputerInventory) that is empty, but looks like it should hold inventory information. There is also a table (tbInventoryRule) that lists an XML to inventory hardware and software of client machines. So it’s possible, how do I enable it.

I finally came across a field – tbConfigurationC.CollectClientInventory=0. I executed the following command to update its value.
update tbConfigurationC set CollectClientInventory=1

I told my client to rescan for updates, and now when I view PUBLIC_VIEWS.vComputerInventory, I see hardware inventory, and Add/Remove Programs information.

5 thoughts on “Collecting computer inventory using WSUS

  1. This can also be changed with PowerShell with the wsus API:

    $wsusserver = "wsus-server-name"
    #Load required assemblies
    $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($wsusserver,$False)
    $wsusconf = $wsus.GetConfiguration()
    $wsusconf.CollectClientInventory = 1 # 0=turn off, 1=Turn on

  2. If you are having hardware/OS problems or need advice with computer hardware/OS/networking or core software for troubleshooting/benchmarking, you've come to the right forum! If you are having game-related issues, please post in the appropriate game forum or in Help and Tips. There are many experienced forum members here that are willing to help. However, before you post, please read the recommended posting guidelines that are detailed below. Thanks!

Leave a Reply