【问题标题】:Why I get Access Denied Error using WMI Connection?为什么使用 WMI 连接时出现访问被拒绝错误?
【发布时间】:2011-09-26 15:32:04
【问题描述】:

这是整个互联网上的类似错误,但我无法解释为什么会在我的情况下发生这种情况。我正在尝试使用 WMI 从我的 XP 客户端计算机远程安装windwos 服务。我用,

    ConnectionOptions options = new ConnectionOptions();
    options.EnablePrivileges = true;
    options.Impersonation = ImpersonationLevel.Impersonate;
    options.Username = "domainName\userName";
    options.Password = "pwd";
    string path = string.Format("\\\\{0}\\root\\cimv2", machineName);
    ManagementScope scope = new ManagementScope(path, options);
    scope.Connect();

我得到 '访问被拒绝。 (来自 HRESULT 的异常:0x80070005)' 错误。我使用的是 windows XP SP3 并尝试连接到 windows server 2003。

我发现了这些,但我确实检查了所有这些:

  1. 用户帐户不是管理员 - 用户帐户是本地管理员。我可以使用同一个帐户,在该机器上进行安装并创建服务。这是运行我的应用程序服务的帐户。

  2. dcomcnfg 并选中 Enable DCOM - This is already enabled.

  3. 在 ConnectionOptions 中更改了 Enabled Previliges 和 Impersonation 属性。但这无济于事。

  4. 防火墙设置 - 错误消息编号没有说明这一点。但是,这台机器与 XP 客户端在同一个域中。

【问题讨论】:

  • 您在哪一行收到“拒绝访问”错误消息?在 scope.Connect() 线上?
  • 您的 Windows Server 2003 是否加入了域?用户帐户是 Windows Server 2003 上的域帐户还是本地帐户?
  • 已经为此添加了一个答案,这使它对我有用。谢谢汉斯的帮助。

标签: c# wmi dcom


【解决方案1】:

我想通了。我用来远程登录(通过 mstsc)和安装/卸载服务的帐户不是本地管理员帐户。令人惊讶的是,我使用同一个帐户在那台机器上安装服务,所以假设它是本地管理员。当我将帐户添加到本地管理员时,WMI 连接也有效。因此,要远程连接到机器,您需要使用本地管理员帐户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多