C# 在C中终止远程计算机上的进程#
仅帮助终止本地计算机上的进程。如何终止远程计算机上的进程?您可以使用。或者,如果您不介意使用外部可执行文件,请使用我使用以下代码。psKill也是一种很好的方法,但有时您需要检查其他一些东西,例如,在我的例子中,远程计算机运行同一进程的多个实例,但使用不同的命令行参数,所以下面的代码对我来说很有用C# 在C中终止远程计算机上的进程#,c#,.net,process,kill,C#,.net,Process,Kill,仅帮助终止本地计算机上的进程。如何终止远程计算机上的进程?您可以使用。或者,如果您不介意使用外部可执行文件,请使用我使用以下代码。psKill也是一种很好的方法,但有时您需要检查其他一些东西,例如,在我的例子中,远程计算机运行同一进程的多个实例,但使用不同的命令行参数,所以下面的代码对我来说很有用 ConnectionOptions connectoptions = new ConnectionOptions(); connectoptions.Username = string.Format(
ConnectionOptions connectoptions = new ConnectionOptions();
connectoptions.Username = string.Format(@"carpark\{0}", "domainOrWorkspace\RemoteUsername");
connectoptions.Password = "remoteComputersPasssword";
ManagementScope scope = new ManagementScope(@"\\" + ipAddress + @"\root\cimv2");
scope.Options = connectoptions;
SelectQuery query = new SelectQuery("select * from Win32_Process where name = 'MYPROCESS.EXE'");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
{
ManagementObjectCollection collection = searcher.Get();
if (collection.Count > 0)
{
foreach (ManagementObject mo in collection)
{
uint processId = (uint)mo["ProcessId"];
string commandLine = (string) mo["CommandLine"];
string expectedCommandLine = string.Format("MYPROCESS.EXE {0} {1}", deviceId, deviceType);
if (commandLine != null && commandLine.ToUpper() == expectedCommandLine.ToUpper())
{
mo.InvokeMethod("Terminate", null);
break;
}
}
}
}
我喜欢这样(类似于穆巴沙尔的回答):
我不知道pskill,它只是救了我一天!我在你的链接中没有看到任何说明它无法远程工作的内容。我是否遗漏了什么,或者您是否有文件表明它无法工作?
ManagementScope managementScope = new ManagementScope("\\\\servername\\root\\cimv2");
managementScope.Connect();
ObjectQuery objectQuery = new ObjectQuery("SELECT * FROM Win32_Process Where Name = 'processname'");
ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(managementScope, objectQuery);
ManagementObjectCollection managementObjectCollection = managementObjectSearcher.Get();
foreach (ManagementObject managementObject in managementObjectCollection)
{
managementObject.InvokeMethod("Terminate", null);
}