为啥使用 WMI 连接时出现访问被拒绝错误?

Posted

技术标签:

【中文标题】为啥使用 WMI 连接时出现访问被拒绝错误?【英文标题】: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。

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

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

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

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

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

【问题讨论】:

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

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

【讨论】:

以上是关于为啥使用 WMI 连接时出现访问被拒绝错误?的主要内容,如果未能解决你的问题,请参考以下文章

WMI 访问被拒绝

在 ubuntu11.4 中安装 phpmyadmin 时出现访问被拒绝错误

在局域网中的其他计算机上使用 Web API 时出现 403 禁止访问被拒绝错误

WMI 访问被拒绝问题

尝试访问以编程方式创建的 <iframe> 的文档对象时出现“访问被拒绝”JavaScript 错误(仅限 IE)

Access 2013 - 自定义 Web 应用程序 - 创建时出现“访问被拒绝”错误