0

我正在尝试使用带有 WMI 和 C# 的模拟来启动一个进程。

这是我到目前为止所拥有的:

var coptions = new ConnectionOptions();
coptions.Username = String.Format(@"{0}\{1}", machine.Domain, machine.Username);
coptions.Password = machine.Password;
coptions.Impersonation = ImpersonationLevel.Impersonate;
coptions.EnablePrivileges = true;


var mScope = new ManagementScope(String.Format(@"\\{0}\root\cimv2", machine.Address), coptions);
var mClass = new ManagementClass(mScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
object[] generatorProcess = { @"C:\test\test1.exe" };
mClass.InvokeMethod("Create", generatorProcess);

例外:

mClass.InvokeMethod 处的 E_ACCESSDENIED

我该怎么做?

PS:我启动进程的用户没有管理员权限,是否需要?

编辑:它与管理员一起使用,看起来像是用户..

我已按照此处的指南尝试授予权限,但未成功。 https://support.infosim.net/demo/wmi/wmi.html

请帮忙

4

1 回答 1

1

基本上,您不能使用具有有限权限的帐户来执行此操作。您可以调整 WMI 对象的权限以读取但不写入它根本不起作用。

于 2013-09-27T19:49:32.517 回答