Support Forum: Get Support for Patch My PC Products and Services

Microsoft Configuration Manager and Intune (Enterprises/Paid) => Support and General Questions (Enterprises Using ConfigMgr and Intune) => Topic started by: AndAuf on August 10, 2022, 06:41:07 AM

Title: Semi-OT: easy way to check IsInstalled rules
Post by: AndAuf on August 10, 2022, 06:41:07 AM
Hi all,

yes, this question is not caused by PatchmyPC itself, but I hope to find some others struggling with the very same problem.

If you use the Dell driver catalog with SCCM you might frequently stumble across driver updates which just don't work - most likely "not detected after installation completed".

So you can use PatchmyPC to actually have a look at the rules for those updates (sadly, you cannot edit them by now)

Let's have a look at this driver, I am currently struggling with:

This is the IsInstalled rule
<lar:And>
  <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_OEMComputerSystem WHERE SystemTypeID = '2230' OR SystemTypeID = '2231' OR SystemTypeID = '2232' OR SystemTypeID = '2233' OR SystemTypeID = '2234' OR SystemTypeID = '2235' OR SystemTypeID = '2272' OR SystemTypeID = '2273' OR SystemTypeID = '2274' OR SystemTypeID = '2281' OR SystemTypeID = '2328' OR SystemTypeID = '2329' OR SystemTypeID = '2330' OR SystemTypeID = '2331' OR SystemTypeID = '2332' OR SystemTypeID = '2342' OR SystemTypeID = '2343' OR SystemTypeID = '2344' OR SystemTypeID = '2345' OR SystemTypeID = '2350' OR SystemTypeID = '2351' OR SystemTypeID = '2352' OR SystemTypeID = '2353' OR SystemTypeID = '2354' OR SystemTypeID = '2355' OR SystemTypeID = '2356' OR SystemTypeID = '2357' OR SystemTypeID = '2358' OR SystemTypeID = '2359' OR SystemTypeID = '2360' OR SystemTypeID = '2361' OR SystemTypeID = '2365' OR SystemTypeID = '2370' OR SystemTypeID = '2371' OR SystemTypeID = '2379' OR SystemTypeID = '2381' OR SystemTypeID = '2431' OR SystemTypeID = '2432' OR SystemTypeID = '2435' OR SystemTypeID = '2436' OR SystemTypeID = '2437' OR SystemTypeID = '2438' OR SystemTypeID = '2439' OR SystemTypeID = '2440' OR SystemTypeID = '2441' OR SystemTypeID = '2442' OR SystemTypeID = '2443' OR SystemTypeID = '2444' OR SystemTypeID = '2462' OR SystemTypeID = '2463' OR SystemTypeID = '2464' OR SystemTypeID = '2465' OR SystemTypeID = '2466' OR SystemTypeID = '2468' OR SystemTypeID = '2469' OR SystemTypeID = '2470' OR SystemTypeID = '2471' OR SystemTypeID = '2472' OR SystemTypeID = '2473' OR SystemTypeID = '2474' OR SystemTypeID = '2475' OR SystemTypeID = '2490' OR SystemTypeID = '2491' OR SystemTypeID = '2493' OR SystemTypeID = '2494' OR SystemTypeID = '2496' OR SystemTypeID = '2497' OR SystemTypeID = '2498' OR SystemTypeID = '2499' OR SystemTypeID = '2500' OR SystemTypeID = '2502' OR SystemTypeID = '2505' OR SystemTypeID = '2508' OR SystemTypeID = '2509' OR SystemTypeID = '2550' OR SystemTypeID = '2591' OR SystemTypeID = '2592' OR SystemTypeID = '2593' OR SystemTypeID = '2594' OR SystemTypeID = '2606' OR SystemTypeID = '2607' OR SystemTypeID = '2608' OR SystemTypeID = '2609' OR SystemTypeID = '2610' OR SystemTypeID = '2611' OR SystemTypeID = '2612' OR SystemTypeID = '2613' OR SystemTypeID = '2614' OR SystemTypeID = '2615' OR SystemTypeID = '2616' OR SystemTypeID = '2622' OR SystemTypeID = '2623' OR SystemTypeID = '2624' OR SystemTypeID = '2625' OR SystemTypeID = '2626' OR SystemTypeID = '2629' OR SystemTypeID = '2630' OR SystemTypeID = '2631' OR SystemTypeID = '2632' OR SystemTypeID = '2633' OR SystemTypeID = '2642' OR SystemTypeID = '2643' OR SystemTypeID = '2644' OR SystemTypeID = '2645' OR SystemTypeID = '2646' OR SystemTypeID = '2647' OR SystemTypeID = '2651' OR SystemTypeID = '2662' OR SystemTypeID = '2663' OR SystemTypeID = '2664' OR SystemTypeID = '2665' OR SystemTypeID = '2666' OR SystemTypeID = '2717' OR SystemTypeID = '2718' OR SystemTypeID = '2753' OR SystemTypeID = '2754' OR SystemTypeID = '2755' OR SystemTypeID = '2756' OR SystemTypeID = '2757' OR SystemTypeID = '2758' OR SystemTypeID = '2759' OR SystemTypeID = '2760' OR SystemTypeID = '2761' OR SystemTypeID = '2762' OR SystemTypeID = '2763' OR SystemTypeID = '2764' OR SystemTypeID = '2818' OR SystemTypeID = '2819' OR SystemTypeID = '2820' OR SystemTypeID = '2821' OR SystemTypeID = '2822' OR SystemTypeID = '2823' OR SystemTypeID = '2824' OR SystemTypeID = '2825' OR SystemTypeID = '2826' OR SystemTypeID = '2827' OR SystemTypeID = '2828' OR SystemTypeID = '2829' OR SystemTypeID = '2830' OR SystemTypeID = '2831' OR SystemTypeID = '2832' OR SystemTypeID = '2833' OR SystemTypeID = '2834' OR SystemTypeID = '2837' OR SystemTypeID = '2838' OR SystemTypeID = '2839' OR SystemTypeID = '2840' OR SystemTypeID = '2857' OR SystemTypeID = '2858' OR SystemTypeID = '2859' OR SystemTypeID = '2954' OR SystemTypeID = '2955' OR SystemTypeID = '2956' OR SystemTypeID = '3009'" />
  <lar:Or>
    <lar:And>
      <bar:WindowsVersion Comparison="EqualTo" MajorVersion="10" MinorVersion="0" ServicePackMajor="0" ServicePackMinor="0" />
      <bar:Processor Architecture="9" />
    </lar:And>
  </lar:Or>
  <lar:Or>
    <lar:And>
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE OSBuildNumber &gt;= '0'" />
      <lar:And>
        <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE OSBuildNumber &gt;= '0'" />
        <lar:Or>
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0AA7_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0AA7_~') AND VersionString &gt;='0020.0100.0010.0007'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0A2B&amp;REV_0010_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0A2B&amp;REV_0010_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0029&amp;REV_0000_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0029&amp;REV_0000_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0029&amp;REV_0001_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0029&amp;REV_0001_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0AAA&amp;REV_0000_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0AAA&amp;REV_0000_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0AAA&amp;REV_0001_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0AAA&amp;REV_0001_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0AAA&amp;REV_0002_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0AAA&amp;REV_0002_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0025&amp;REV_0001_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0025&amp;REV_0001_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0025&amp;REV_0002_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0025&amp;REV_0002_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0A2B&amp;REV_0001_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0A2B&amp;REV_0001_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0026&amp;REV_0000_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0026&amp;REV_0000_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0026&amp;REV_0001_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0026&amp;REV_0001_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0026&amp;REV_0002_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0026&amp;REV_0002_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0032&amp;REV_0000_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0032&amp;REV_0000_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0032&amp;REV_0001_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0032&amp;REV_0001_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0033&amp;REV_0000_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0033&amp;REV_0000_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0033&amp;REV_0001_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0033&amp;REV_0001_~') AND VersionString &gt;='0022.0130.0000.0002'" />
          <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_USB\VID_8087&amp;PID_0A2A_' AND Description &lt; 'Dell:DRVR_USB\VID_8087&amp;PID_0A2A_~') AND VersionString &gt;='0020.0100.0010.0007'" />
        </lar:Or>
      </lar:And>
    </lar:And>
    <lar:Or>
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_103306__' AND Description &lt; 'Dell:DRVR_103306__~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0026_' AND Description &lt; 'Dell:DRVR_8087_0026_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0029_' AND Description &lt; 'Dell:DRVR_8087_0029_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0A2B_' AND Description &lt; 'Dell:DRVR_8087_0A2B_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0025_' AND Description &lt; 'Dell:DRVR_8087_0025_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0A2A_' AND Description &lt; 'Dell:DRVR_8087_0A2A_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0AAA_' AND Description &lt; 'Dell:DRVR_8087_0AAA_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0032_' AND Description &lt; 'Dell:DRVR_8087_0032_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
      <bar:WmiQuery Namespace="Root\Dell\sysinv" WqlQuery="SELECT * FROM Dell_SoftwareIdentity WHERE (Description &gt;= 'Dell:DRVR_8087_0033_' AND Description &lt; 'Dell:DRVR_8087_0033_~') AND VersionString &gt;= '0022.0130.0000.0002'" />
    </lar:Or>
  </lar:Or>
</lar:And>

Do you know an easy way to manually check these rules? Without manually taking line by line, decoding to plain text?

I mean.. I can start by using (Get-WmiObject -Namespace "Root\Dell\sysinv" -query "SELECT description FROM Dell_SoftwareIdentity WHERE Description like 'Dell:DRVR_%'").Description look for matching IDs and go on and on. But maybe you had the same issues and actually found an easier solution. :)
Title: Re: Semi-OT: easy way to check IsInstalled rules
Post by: Andrew Jimenez (Patch My PC) on August 30, 2022, 05:22:01 PM
Hello,

Unfortunately, there isn't an "easy" way to check these rules. Most of our rules are much less complicated than this (in fact, we do not utilize WMI based rules at all because they are slow). Sorry we can't be of more help!