2009-07-21 9 views
1

Ja, ich könnte das googeln, aber ich bin ein bisschen faul. Ich muss Windows-Dienste auf einem anderen Computer fernsteuern. Lässt mich die ServiceController-Klasse das tun? Welche Einschränkungen gibt es? Kann ich die "run as" -Details remote starten/stoppen/ändern, dh ein passendes Passwort ändern?.Net-Klassen zur Steuerung von Diensten auf einem Remote-Computer?

Ich werde versuchen, den Benutzern bei der Arbeit ein ASP.Net-Website-Dashboard zur Verfügung zu stellen, um mehrere Dienste zu steuern, die auf ihrem lokalen Rechner unter ihrem eigenen Konto laufen (sie sind alle lokale Administratoren auf ihrem Rechner). Dies ist mit anderen Funktionen integriert, so dass ich nicht auf die Erstellung eines distributable erstellen möchte, die lokal für sie ausgeführt werden könnte. Wird die Windows-Authentifizierung verwenden und die Identität des Benutzers annehmen, um die Änderungen vorzunehmen. Welche Probleme, wenn überhaupt, stoße ich wahrscheinlich darauf?

Prost

Antwort

8
var sc = new ServiceController("servicename", "othermachinename"); 

Das Konto den Code ausgeführt wird auf dem Zielcomputer, um mit dem Dienst interagieren Administratorrechte benötigen. Identitätswechsel wird funktionieren. Ich habe dies nur in einer ziemlich genau kontrollierten Situation verwendet (d. H. Von einem Benutzerkonto mit den gleichen Anmeldeinformationen auf den Quell-/Zielrechnern), aber meiner Erfahrung nach funktionieren alle Operationen wie erwartet.

Wenn Sie die Dienstanmeldeinformationen usw. ändern möchten, müssen Sie WMI verwenden - was nicht so einfach ist wie die Verwendung der ServiceController-Klasse. Weitere Informationen finden Sie in der ManagementObject-Klasse.

Ich habe this link gefunden, das die Verwendung von WMI zum Ändern von Dienstanmeldeinformationen beschreibt.

+0

+1 Ich benutze das auch; habe es in eine Konsolen-App eingepackt, damit ich 'runas' verwenden kann, um Dienste auf Remote-Computern mit einem bestimmten Benutzerkonto zu starten/stoppen. –

+0

danke - kann einer von euch mir dann ein paar Fragen zu WMI/ManagementObject stellen? – Ray

+0

Arj: Überprüfen Sie den Link in meiner Antwort - es hat ein WMI-Beispiel. –

0

@MadSeb -

Wie ich in meinem other post:

, wenn Sie C# oder VB.Net verwenden, dann WMI verwenden

Andernfalls "SC" ist wahrscheinlich das beste Werkzeug aus einer Befehlszeile oder BAT-Datei verwenden.

Verwandte Themen