title: WMI - select from Win32_Product takes a long time
body: <p>I am enumerating installed applications using WMI, and this block is taking a relatively long time to complete no matter how I structure it.  It takes 13 seconds in my environment every time.  Is there a better (faster) way to check if a program is installed?  (I'm using iTunes as an example program to check for)</p>
  
  <pre><code>    private static string Timestamp
      {
          get { return DateTime.Now.ToString("HH:mm:ss.ffff"); }
      }
  
      private static void LoadInstalledPrograms()
      {
          List&lt;string&gt; installedPrograms = new List&lt;string&gt;();
          Console.WriteLine("0 - {0}", Timestamp);
          ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
          Console.WriteLine("1 - {0}", Timestamp);
          ManagementObjectCollection managementObjectCollection = mos.Get();
          Console.WriteLine("2 - {0}", Timestamp);
          foreach (ManagementObject mo in managementObjectCollection)
          {
              installedPrograms.Add(mo["Name"].ToString());
          }
          Console.WriteLine("3 - {0}", Timestamp);
          Console.WriteLine("Length - {0}", installedPrograms.Count);
      }
  </code></pre>
  
  <p><strong>SELECT * FROM Win32_Product</strong></p>
  
  <pre><code>0 - 08:08:51.3762
  1 - 08:08:51.3942
  2 - 08:08:51.4012
  3 - 08:09:04.8326
  Length - 300
  </code></pre>
  
  <p><strong>SELECT * FROM Win32_Product WHERE name = 'iTunes'</strong></p>
  
  <pre><code>0 - 08:14:17.6529
  1 - 08:14:17.6709
  2 - 08:14:17.6779
  3 - 08:14:31.0332
  Length - 1
  </code></pre>
  
  <p><strong>SELECT * FROM Win32_Product WHERE name LIKE 'iTunes'</strong></p>
  
  <pre><code>0 - 08:16:38.2719
  1 - 08:16:38.2899
  2 - 08:16:38.2999
  3 - 08:16:51.5113
  Length - 1
  </code></pre>
  
  <p><strong>SELECT name FROM Win32_Product WHERE name LIKE 'iTunes'</strong></p>
  
  <pre><code>0 - 08:19:53.9144
  1 - 08:19:53.9324
  2 - 08:19:53.9394
  3 - 08:20:07.2794
  Length - 1
  </code></pre>