C# - 访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))

时间:2017-03-06 07:51:14

标签: c#

当我尝试使用System.management远程连接到计算机时出现此错误:

  

访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))

这是我的代码:

try
        {
            ConnectionOptions options = new ConnectionOptions();
            options.Impersonation = System.Management.ImpersonationLevel.Impersonate;
            options.Authentication = AuthenticationLevel.Packet;
            options.Timeout = new TimeSpan(0, 0, 30);
            options.EnablePrivileges = true;
            options.Username = "\\" + textBox2.Text;
            options.Password = textBox3.Text;
            ManagementPath path = new ManagementPath(@"\\" + textBox1.Text + @"\root\cimv2");
            ManagementScope scope = new ManagementScope(path, options);
            scope.Connect();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            return;
        }

有人可以解释为什么我会收到此错误吗?

1 个答案:

答案 0 :(得分:0)

鉴于您提供的用户名是正确的,存在并且有权访问该计算机。

这一行

options.Username = "\\" + textBox2.Text;

将导致用户名\administrator,这不是有效的用户名。您需要定义域或范围。所以试试这个:

options.Username = ".\\" + textBox2.Text;

这将定义本地用户(在远程机器上)。使用域用户时,请在反斜杠前面写下域名:

options.Username = "MyCorp\\" + textBox2.Text;