Ich versuche, Windows-Dienste zu steuern, die auf einem Remotecomputer installiert sind. Ich benutze die Klasse ServiceController
.Wie man einen Windows Service mit ServiceController fern steuert?
Ich habe dies:
ServiceController svc = new ServiceController("MyWindowsService", "COMPUTER_NAME");
Damit kann ich den Status des Windows-Dienst wie diese:
string status = svc.Status.ToString();
Aber ich kann nicht den Windows-Dienst steuern (von svc.Start();
tun oder svc.Stop();
). Ich erhalte die folgende Ausnahme:
kann nicht geöffnet werden Servicexxx Dienst auf Computer ‚COMPUTER_NAME‘
Das ist normal, ich nehme an, es etwas mit Zugriffsberechtigungen zu tun ist. Aber wie? Ich habe in Google gesucht, aber nicht gefunden, wonach ich gesucht habe. Allerdings lese ich oft etwas, das mit dem Nachahmen zusammenhängt, aber ich weiß nicht, was das bedeutet.
Hinweis: Auf den lokalen und Remote-Computern wird Win XP Pro ausgeführt.
Dies ist eine unnötige Sicherheitslücke. Wenn der Benutzer dieser Anwendung über den Zugriff verfügt, sollte er über die Anmeldeinformationen verfügen und sich als dieser Benutzer anmelden. Wichtiger noch, sie sollten die Berechtigungen nur einer Gruppe zuweisen, der sie angehören. Dies löst das Problem nicht, es ist eine unsichere Umgehung Siehe Hans Passants Antwort und die damit verbundenen Kommentare. – majinnaibu