Terminar proceso remotamente

Estos días estoy testeando una aplicación que en ocasiones se queda pillada y necesito detenerla desde el Administrador de tareas.

Como estaba en otro ordenador se me ocurrió hacer algún programa en C# que permita cerrar una aplicación remotamente.

En un post anterior os he compartido como iniciar un proceso o aplicación remotamente, ahora en este ejemplo veremos como cerrarla.

Claro que este forma de cerrar un programa es una mala practica, pero lo interesante es lo fácil que se puede hacer con C#. Solo necesitamos el nombre de la aplicacion, IP del ordenador remoto, usuario y contraseña.

El código es el siguiente:


string proceso = string.Empty;
ConnectionOptions loConnectionOptions = null;

proceso = "ccTalkTest.exe";
loConnectionOptions = new ConnectionOptions();
loConnectionOptions.Username = txtUser.Text;
loConnectionOptions.Password = txtPassword.Password;

ManagementScope scope = new ManagementScope(@"\\" + txtIP.Text + @"\root\cimv2", loConnectionOptions);

SelectQuery query = new SelectQuery("select * from Win32_process where name = '" + proceso + "'");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
{
    foreach (ManagementObject process in searcher.Get()) { process.InvokeMethod("Terminate", null); }
}