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

时间:2014-03-19 17:52:18

标签: c# wmi remote-server access-denied

我试图在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中作为虚拟机运行
  • 客户端操作系统获胜8.1,服务器获胜7
  • 客户端和服务器之间的连接正常,所有防火墙都被禁用

0 个答案:

没有答案