使用模拟c#在远程计算机上启动进程

时间:2013-09-19 18:50:29

标签: c# wmi

我正在尝试使用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

请帮助

1 个答案:

答案 0 :(得分:1)

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