Überprüfen Sie, ob ein Prozess auf einem Remote-System mit C # ausgeführt wird.

8

Ich versuche zu überprüfen, ob ein Prozess auf einem Remote-System ausgeführt wird. Ich verwende den folgenden Code:

%Vor%

Wenn ich jedoch versuche, den Code auszuführen, erhalte ich den folgenden Fehler: "Verbindung mit Remote-Computer konnte nicht hergestellt werden."

Ich kann pslist mit dem folgenden Befehl ausführen: C: & gt; pslist \ remoteSystemName So weiß ich, dass es möglich ist, die Informationen zu bekommen, die ich brauche, aber ich brauche es im Code.

Eine andere Möglichkeit wäre, pslist in C # zu integrieren und die Liste zu durchsuchen, um zu sehen, ob der Prozess dort ist, aber ich habe keine Informationen darüber gefunden, wie das geht.

    
Zifre 14.05.2009, 20:02
quelle

5 Antworten

7

Verwenden Sie die Klasse System.ServiceProcess.ServiceController für einen Service. Sie können Status verwenden, um zu überprüfen, ob es läuft, und Stop() und Start() , um es zu steuern.

%Vor%     
Larry Hipp 14.05.2009 20:13
quelle
1

Unten ist, was ich getan habe, um dies zum Laufen zu bringen:

Zuerst habe ich einen Verweis auf System.ServiceProcess hinzugefügt und hinzugefügt: using System.ServiceProcess;

%Vor%     
Chris 14.05.2009 21:16
quelle
1

Sagt die innere Ausnahme "Zugriff verweigert"?

Eine ähnliche Frage kann hilfreich sein, sie erwähnt, dass Sie sich in der Gruppe Systemmonitorbenutzer befinden müssen.

GetProcessesByName () und geplante Windows Server 2003-Aufgabe

    
Crispy 14.05.2009 20:21
quelle
0

Ich dachte mir, wenn ich die Anwendung selbst ausführe, würde ich ein Ausnahmefenster bekommen, weil Ausnahmen in meinem Code nicht behandelt wurden ...

Dort habe ich den Grund im Stacktrace gesehen: Zugriff verweigert . Der Grund dafür war, dass der Benutzer, der das Programm ausführte, das die .NET-Methode zum Abrufen der Prozessliste aufgerufen hatte, nicht Teil der Gruppe "Systemmonitorbenutzer" des Remotecomputers war.

Danach habe ich eine weitere Ausnahme erhalten, die besagt, dass der Leistungsüberwachungsdienst nicht auf dem Remotecomputer ausgeführt wurde . Also habe ich den entsprechenden Dienst am entfernten Rechner gestartet und voila hat es geklappt!

Dies verwendete einen Windows 7-Client, der versuchte, die Prozessliste eines Windows 2008 Servers abzurufen.

    
ohgodnotanotherone 01.10.2014 08:47
quelle
0

Killing den Remote-Prozess
Ich fand, dass die Process.Kill () -Methode nicht funktioniert, wenn der Process.MachineName festgelegt wurde, also hier ist eine Lösung für das Löschen des Prozesses aus der Ferne, hoffe, es hilft anderen.


Die Erweiterungsmethode zum Erstellen der Methode: KillRemoteProcess

%Vor%

Und natürlich die Methode, um die Prozesse zu finden und den KillRemoteProcess zu konsumieren

%Vor%     
Nick Prozee 08.09.2016 10:54
quelle

Tags und Links