SCCM 2007 – OSD Troubleshooting – Task Sequence WMI queries on computer models returning false results

I’ve written a few items concerning adding WMI queries to driver packages within the OSD task sequences within SCCM2007. Recently I hit a snag which was somewhat perplexing until I decided to browse the WMI with several different tools.

Generally, I’ve taken to browsing the WMI on various computers models with SCCM Client Center as it is very good, all-purpose tool. As I was building a model injection task sequence for Windows 7 (x64) I discovered that none of my WMI queries for Win32_ComputerSystem.Model were functioning. Where they had performed flawlessly in Windows XP they were failing in Windows 7.

For example:

Running the following query on an OptiPlex 755 returned a 0 value. (I’m using a 755 so testing the query locally via the SCCM console was a good method of verification.)

SELECT * FROM Win32_ComputerSystem WHERE Model = “OptiPlex 755”

For testing purposes, I changed the = to a LIKE and just left the remainder as “OptiPlex%” which returned a positive result. Additionally, changing the remainder to “OptiPlex 755%” also yielded a positive result. At this point I knew that something was different in the way this particular class was either registered within Windows 7 or something was different in the way it was read.

Using SCCM Client Center yielded a value of “OptiPlex 755”. I decided to go download the old WMI Administrative Tools app from Microsoft (located – http://www.microsoft.com/downloads/details.aspx?FamilyID=6430f853-1120-48db-8cc5-f2abdc3ed314&displaylang=en) to see what it would yield. Lo and behold, the value was “OptiPlex 755 ” – the spaces being 17 in total. I tested this by inserting 17 spaces into my query and the result came back positive.

My recommendation at this time, in order to save people the trouble of checking each model in their environment for the number of spaces, is to change the query to the following: (insert your computer model where OptiPlex 755 is in the query below)

SELECT * FROM Win32_ComputerSystem WHERE Model LIKE “OptiPlex 755%”

If this fails on any particular machine, I will post here, and would appreciate readers doing the same.

Leave a Reply