title: How to call ManagementBaseObject methods or get a ManagementObject?
body: <h2>TL/DR:</h2>
  <p>The main issue is this: I get a <code>ManagementBaseObject</code> as returned value. But I cannot call its methods, as it doesn't have the <code>InvokeMethod()</code> member, like <code>ManagementObject</code> has. So how do I call its member-methods?</p>
  <h2>elaboration:</h2>
  <p>I open a <code>BcdStore</code> object:</p>
  <pre><code>var bcdCls = new ManagementClass(@&quot;root\WMI&quot;, &quot;BcdStore&quot;, null); // OpenStore is a static method
  var methodParams = bcdCls.GetMethodParameters(&quot;OpenStore&quot;);
  methodParams[&quot;file&quot;] = &quot;&quot;; // the default store
  var results = bcdCls.InvokeMethod(&quot;OpenStore&quot;, methodParams, null);
  Assert.IsNotNull(results);
  var store = results[&quot;store&quot;] as ManagementBaseObject;
  Assert.IsNotNull(store);
  </code></pre>
  <p>But this object is useless:</p>
  <pre><code>// unfortunately, it is not a ManagementObject, so no InvokeMethod() is possible :-(
  Assert.IsNull(store as ManagementObject);
  store.InvokeMethod(&quot;EnumerateObjects&quot;, new object[] { 0 }); // Compilation error!
  // ManagementBaseObject doesn't have an InvokeMethod member method!
  </code></pre>