Frage

Ich versuche Windows -Dienste zu steuern, die auf einem Remote -Computer installiert sind. Ich benutze das ServiceController Klasse.

Ich habe das:

ServiceController svc =  new ServiceController("MyWindowsService", "COMPUTER_NAME");

Damit kann ich den Status des Windows -Dienstes wie folgt erhalten:

string status = svc.Status.ToString();

Aber ich kann den Windows -Dienst nicht steuern (indem ich es tun svc.Start(); oder svc.Stop();). Ich bekomme die folgende Ausnahme:

Servicexxx -Dienst kann nicht auf dem Computer 'computer_name' geöffnet werden

Das ist normal, ich nehme an, es gibt etwas mit Zugriffsberechtigungen zu tun. Aber wie? Ich habe Google angesehen, aber nicht gefunden, wonach ich gesucht habe. Allerdings habe ich oft etwas mit Identitätswechsel gelesen, aber ich weiß nicht, was das bedeutet.

NB: Die lokalen und Remote -Computer führen beide Win XP Pro aus.

War es hilfreich?

Lösung

Problem gelöst.

Die Identitätswechsel können mithilfe eines bestimmten Anmelde-/Kennworts ein Code ausführen. Ich fand dieses sehr nützliche Projekt: http://www.codeprroject.com/kb/cs/svcmgr.aspx?display=print Das hat mir sehr geholfen!

Andere Tipps

Das Starten und Stoppen von Diensten ist ein hoch privilegierter Betrieb, der normalerweise nur den Administratoren zur Verfügung steht. Stellen Sie sicher, dass das von Ihnen verwendete Benutzerkonto über ausreichende Berechtigungen auf der Zielmaschine verfügt. Stellen Sie weitere Fragen dazu unter serverfault.com

Um das Problem zu lösen, geben Sie Ihrem Namen die Administratorberechtigungen auf Remote -Computer/Server wie Domain/Benutzername an und Sie werden das Paket erfolgreich ausführen, da ich das gleiche Problem hatte und als ich meinen Selbstdiensten Berechtigungen erteilte, waren auf der Remote zugänglich Server

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top