为什么我使用WMI连接获得访问被拒绝错误?

时间:2011-09-26 15:32:05

标签: c# wmi dcom

这是一个类似的错误在互联网上,但我无法推断为什么这可能发生在我的情况下。我正在尝试使用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. 用户帐户不是admin - 用户帐户是本地管理员。我可以使用相同的帐户,在该机器上执行instalutil并创建服务。这是我的应用程序服务运行的帐户。

  2. dcomcnfg并选中启用DCOM - 已启用此功能。

  3. 在ConnectionOptions中更改了已启用的Previliges和Impersonation属性。但这没有用。

  4. 防火墙设置 - 错误消息编号不说这个。但是,该机器与XP客户端具有相同的域。

1 个答案:

答案 0 :(得分:0)

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