Monday, April 12, 2010

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 comments:

Hemebond said...

You beauty! I've spent several hours trying to figure out why WSUS wasn't collecting this information despite having the tables for it.

Thank you very much.

Anonymous said...

i must not be doing it right i changed the value but nothing is populating what else did you change and what tables are you viewing?

Jarle Sandmo said...

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

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

Subol Biswas said...

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!

David Thomason said...

Talking about hardware inventory for sure the best solution is https://www.softinventive.com/products/total-network-inventory/ I tried a lot of different software, but this one is the most userfriendly and very comfortable to use and create reports.