Dienste per Remote beenden

kany

Grünschnabel
Hallo,

ich komme einfach nicht weiter.

Ich möchte mehrere Dienste per von einem Client an einem Server beenden was eigentlich kein Problem ist wenn die beide Administratoren sind, also so:

Code:
ServiceController sc1 = new ServiceController("Dienst", "Rechner");
            sc1.Stop();

Leider soll ein normaler User diese Dienste beenden können obwohl er kein Admin auf dem Server ist. :confused: er darf auch keine Rechte auf dem Server bekommen.

Da ich über diesen Weg nicht weiter gekommen bin habe ich per psservice.exe gearbeitet:

Code:
Process PService = Process.Start(System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName) + "\\psservice.exe", @"\\192.168.178.32 -u User -p Passwort start Designs");

Die aber leider auch nicht da meine Dienste ua. Lehrzeichen haben also "Dienst Name ", was wiederum psservice nicht mag:confused:

kann mir einer einen tipp geben, bei wmi bin ich leider ausgestigen :(
 
Was mir auf die schnelle einfällt: Schreib einen zweiten Dienst den Du per Remoting ansprichts. Bekommt dieser einen bestimmten Befehl soll er den anderen Beenden. Oder du implementierst dies gleich mit in den zubeendenden. An dieser Stelle solltest du dann auch die Leerzeichen in deinem Dienstnamen entfernen.
 
hallo,

danke für die idee.

Den dienst umbenennen wird nicht gehen da es sich um ein progrmm handelt was ich nicht in seiner Grundstruktur ändern werde bzw. kann. Auf dem server solte nichts mit installiert werden

Um mal zu verdeutlichen was mein programm machen soll ist folgender; auf dem server gibt es eine config datei die zu Wartungszwecken gesichert werden soll, dafür müssen 2 dienste per remot beendet werden um den kopier Vorgang (file.coppy) zu starten, da die config "gespert" ist solange die dinste laufen. ein öffnen der datei ist auch nicht möglich da die datei verschlüsselt ist.
jetzt soll es technikern aus der ferne die dienste beenden, datei kopieren und dienste wieder starten können ohne direkten zugriff auf den server zu nehmen
 
Zurück