Prozess auf Remote-Computer beenden
Ich versuche, einen Prozess auf einem Remotecomputer abzubrechen. Aber ich bekomme einen Fehler. Was mache ich falsch und wie kann ich diese Arbeit machen?
Mein Code:
var iu = new ImpersonateUser();
try
{
iu.Impersonate(Domain, _userName, _pass);
foreach (var process in Process.GetProcessesByName("notepad", "RemoteMachine"))
{
string processPath = pathToExe; //Is set as constant (and is correct)
process.Kill();
Thread.Sleep(3000);
Process.Start(processPath);
}
}
catch (Exception ex)
{
lblStatus.Text = ex.ToString();
}
finally
{
iu.Undo();
}
Nur um ImpersonateUser zu verdeutlichen, muss ich mich mit den richtigen Benutzerrechten auf dem Remote-Computer anmelden. Das Problem ist also nicht da. Wenn ich das Prozessobjekt debugge und überprüfe, finde ich in diesem Fall die richtige Prozess-ID für den Editor. Die Verbindung funktioniert also einwandfrei. Aber wenn ich versuche, den Prozess abzubrechen, erhalte ich diesen Fehler:
System.NotSupportedException: Feature is not supported for remote machines. at System.Diagnostics.Process.EnsureState