title: Get-WmiObject with and without -list: different objects?
body: <p>I am using PowerShell 2.0 and trying to get the possible methods from Win32_ShadowCopy.</p>
  
  <p>Now, when I use <code>Get-WmiObject -list Win32_ShadowCopy | Get-Member</code> I get:</p>
  
  <pre><code>   TypeName: System.Management.ManagementClass#ROOT\cimv2\Win32_ShadowCopy
  
  Name                MemberType    Definition
  ----                ----------    ----------
  Name                AliasProperty Name = __Class
  Create              Method        System.Management.ManagementBaseObject Cre...
  ...
  </code></pre>
  
  <p>But if I use <code>Get-WmiObject Win32_ShadowCopy | Get-Member</code> i get:</p>
  
  <pre><code>   TypeName: System.Management.ManagementObject#root\cimv2\Win32_ShadowCopy
  
  Name                MemberType   Definition
  ----                ----------   ----------
  Revert              Method       System.Management.ManagementBaseObject Reve...
  Caption             Property     System.String Caption {get;set;}
  ...
  </code></pre>
  
  <p>Now I don't understand. Why do I get 2 seemingly different classes? I expect the same result with both commands. I can find what <code>-list</code> does in the documentation, but not what the default behavior is without the <code>-list</code> switch. Anyone care to clarify?</p>