繁体   English   中英

在远程计算机上模拟用户时为WMI访问被拒绝

[英]Access Denied for WMI when impersonating user on remote machine

我正在尝试使用System.Management从远程计算机收集过程信息。

我冒充使用沿东西在远程机器上的管理这些线路 ,但下面的代码抛出一个异常:“访问被拒绝”。

ConnectionOptions options = new ConnectionOptions();
options.Impersonation = System.Management.ImpersonationLevel.Impersonate;

ManagementScope scope = new ManagementScope(@"\\" + machine + @"\root\cimv2", options);
scope.Connect();

ObjectQuery query = new ObjectQuery("Select * from Win32_Process where ProcessId = "
                        + procID.ToString());

ManagementObjectSearcher mos = new ManagementObjectSearcher(scope, query);

string cmdLn = "";
foreach (ManagementObject mo in mos.Get())
{
    cmdLn = (string)mo.GetPropertyValue("CommandLine");
}

但是,如果我将用户名和密码提供给options ,则一切正常。

我已验证此代码正在作为模拟上下文执行(在远程计算机上具有足够的权限),因此我不确定为什么没有传递用户名/密码就无法正常工作。

是否可以在不显式传递用户凭据的情况下成功进行身份验证?

使用WMI,当模拟特定用户时,必须提供明确的凭据。 您上面提供的链接使用变量lpszUsername和lpszPassword对此进行了说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM