还有另一个WMI的UnauthorizedAccessException

时间:2015-09-05 13:33:13

标签: c# wmi remote-access

我正在尝试在WinXP上远程运行应用程序。这是代码。

void RemoteExecute(string userName,
                            string password,
                            string path,
                            object[] commandLine)
    {
        ConnectionOptions options = new ConnectionOptions();

        options.Impersonation = ImpersonationLevel.Impersonate;
        options.Authentication = AuthenticationLevel.Default;
        options.Username = userName;
        options.Password = password;
        options.Authority = null;
        options.EnablePrivileges = true;

        ManagementScope scope = new ManagementScope(path, options);
        scope.Connect();

        using (ManagementClass process = new ManagementClass("Win32_Process"))
        {
            process.Scope = scope;
            process.InvokeMethod("Create", commandLine);
        }
    }

...
object[] commandLine = { "cmd.exe", null, null, 0 };
        RemoteExecute("acid",
                    "123",
                    @"\\192.168.142.128\Root\CIMV2",
                    commandLine);

然后我在scope.Connect()Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))上获得了例外。谷歌搜索这导致我调整目标机器上的安全设置。这就是我所做的。

  1. 在源框和目标框上禁用防火墙
  2. DCOMCNFG =>组件服务=>我的电脑=>属性=> COM安全性=>访问权限/午餐和激活权限=>编辑限制/编辑默认=>添加帐户/放置所有可能的允许复选标记。
  3. WMI Control =>属性=>安全ROOT和CIMV2 =>安全性=>在“允许无处不在”上添加了新帐户/设置选中标记。
  4. 尝试使用帐户administrator。没有空密码。
  5. 我还应该做些什么来避免例外?

0 个答案:

没有答案