【发布时间】:2015-05-06 11:41:47
【问题描述】:
我正在尝试使用 .NET 4.5 上的 WMI/C# 终止远程计算机上的进程。在下面的代码中,当对 ManagementObjectSearcher 实例调用 Get 方法时,没有返回任何内容,因此未到达 foreach 内的行。 ManagementScope 已连接,并且查询变量包含要终止的进程的名称。 感谢您的帮助。
try
{
ConnectionOptions connOptions = new ConnectionOptions();
connOptions.Impersonation = ImpersonationLevel.Impersonate;
connOptions.EnablePrivileges = true;
ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", NetworkName), connOptions);
manScope.Connect();
var query = new SelectQuery("select * from Win32_process where name = '" + ProcessName + "'");
using (var searcher = new ManagementObjectSearcher(manScope, query))
{
foreach (ManagementObject process in searcher.Get())
{
process.InvokeMethod("Terminate", null);
}
}
}
catch (ManagementException err)
{
//Do something with error message here
}
【问题讨论】: