Using SCCM WMI Global Condition to detect exsistence of hardware


I am attempting to use Global Conditions to allow SCCM 2012 Application objects to trigger the installation of a video driver package. I'm running into issues when I have both an onboard (CPU or Motherboard based) video device and a PCI-E Video card. The reason I can find is that the application requirement I setup to detect this is unable to handle the results properly. Here is how I have this setup:

Global Condition

  • Type: WQL query
  • Data Type: String
  • Class: Win32_VideoController
  • Property: PNPDeviceID

Application Requirement

  • Rule Type: Value
  • Operator: Begins with
  • Value: PCI\VEN_8086&DEV_1912

This example is for Intel HD Graphics 530. It works until I add a Video Card. I'm using a Dell Precision Tower 3620 which has a feature that allow you to use both onboard and PCI-E video cards at the same time. They show up as two different devices in device manager but they are both using the standard VGA driver.

The driver package, on the other hand, disappears from software center. When I use the Deployment Monitoring Tool (part of Config Manager Toolkit), I see that the Requirement Violation is that the Current Value doesn't Equal the Rule Expression. The problem is that the Current Value is the Device ID for the PCI-E video card. From what I can tell, the requirement processes each instance recorded in the Win32_VideoController Class and you have to pass all of them in order to allow the deployment to evaluate as applicable.

So does anyone have an idea on how I can get SCCM to properly handle the multiple instances that the WQL query is returning? I just need a way to pass the requirement evaluation when one of many instance matches the value.

Best Answer

You should make a global condition for that exact card using a filtering PNPDeviceID in WHERE clause of GC. And deployment type requirements should check this requirement as existential.

Related Topic