c#中的WMI远程连接使用了错误的用户名

c#中的WMI远程连接使用了错误的用户名,c#,wmi,remote-server,access-denied,C#,Wmi,Remote Server,Access Denied,我正在尝试用C#创建一个程序,它将从本地或远程服务器检索一些数据。本地部分工作正常,远程连接根本不工作。我被拒绝访问 这是密码 public void ConnectToWmi() { var options = new ConnectionOptions(); options.Username = "admin"; options.Password = "admin"; options.Impersonation = ImpersonationLevel.Impersonate

我正在尝试用C#创建一个程序,它将从本地或远程服务器检索一些数据。本地部分工作正常,远程连接根本不工作。我被拒绝访问

这是密码

public void ConnectToWmi()
{
  var options = new ConnectionOptions();
  options.Username = "admin";
  options.Password = "admin";
  options.Impersonation = ImpersonationLevel.Impersonate;
  options.EnablePrivileges = true;

  var scope = new ManagementScope("\\SERVER_NAME\root\cimv2",options);
  scope.Connect();          
}
我已经使用wbemtest.exe验证了连接是否正常工作。 当我使用Wireshark检查这两个连接时,我注意到了一件奇怪的事情——wbemtest发送的是正确的用户名“admin”,但我的程序发送的是当前登录计算机的用户的用户名

所以我做了一点实验,在运行我的程序的计算机上创建了一个管理员帐户,使用凭据用户名“admin”密码“admin”。而且它有效

简而言之:为什么我的C#程序使用当前登录用户的凭据而不是代码中提供给它的凭据

更多信息

  • 服务器正在我的笔记本电脑上的Hyper V中作为虚拟机运行
  • 客户端操作系统是Win8.1,服务器是Win7
  • 客户端和服务器之间的连接正常,所有防火墙都已禁用