title: Access Denied for WMI when impersonating user on remote machine
body: <p>I'm trying to collect process information from remote machines using System.Management.</p>
  
  <p>I'm impersonating an admin on the remote machine using something along <a href="http://msdn.microsoft.com/en-us/library/w070t6ka.aspx" rel="nofollow">these lines</a>, but the following code throws an exception: "Access Denied".</p>
  
  <pre><code>ConnectionOptions options = new ConnectionOptions();
  options.Impersonation = System.Management.ImpersonationLevel.Impersonate;
  
  ManagementScope scope = new ManagementScope(@"\\" + machine + @"\root\cimv2", options);
  scope.Connect();
  
  ObjectQuery query = new ObjectQuery("Select * from Win32_Process where ProcessId = "
                          + procID.ToString());
  
  ManagementObjectSearcher mos = new ManagementObjectSearcher(scope, query);
  
  string cmdLn = "";
  foreach (ManagementObject mo in mos.Get())
  {
      cmdLn = (string)mo.GetPropertyValue("CommandLine");
  }
  </code></pre>
  
  <p>However, if I supply the username and password to <code>options</code>, everything works fine. </p>
  
  <p>I've verified that this code is executing as the impersonated context (which has sufficient permissions on the remote machine), so I'm not sure why it isn't working without the username/password passed.</p>
  
  <p>Is it possible to authenticate successfully WITHOUT explicitly passing the user's credentials?</p>