Dies ist mein erstes Mal hier und mein zweites Mal Codierung. Um zu erfahren, wie das alles funktioniert, versuche ich, Code-Snippets nachzuschlagen und sie zu kopieren/einzufügen, bis meine Anwendung zu laufen scheint. Ich habe einige Batch- und PS-Skripte geschrieben, aber um ehrlich zu sein, ich bin mehr in Systemadministration und Hardware .... bis jetzt!Wie kann ich einen Dienst remote starten und stoppen
Mein Projekt ist ein einfaches GUI-Tool zum Starten und Stoppen des TeamViewer-Dienstes auf einem bestimmten Server. Ich wollte es so einfach wie möglich halten und es schien zu funktionieren, bis ich die Anwendung auf meinen Kollegen Computern startete, um ihnen zu zeigen, wie man es benutzt.
Ich bekomme den Fehler: System.InvalidOperationException: Der Dienst TeamViewer kann nicht auf dem Computer MYSERVERNAME geöffnet werden. ---> System.ComponentModel.Win32Exception: Zugriff verweigert, was offensichtlich mit Benutzerrechten zu tun hat. Also habe ich eine ganze Weile über die Identitätsnachweise und den WMI-Service gegoogelt, aber jetzt stecke ich fest und muss euch um eure Hilfe bitten.
hier ist also mein Code:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void EIN_Click(object sender, EventArgs e)
{
String svcName = "TeamViewer";
String machineName = "MYSERVERNAME";
var sc = new System.ServiceProcess.ServiceController(svcName, machineName);
sc.Start();
sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running);
}
private void AUS_Click(object sender, EventArgs e)
{
String svcName = "TeamViewer";
String machineName = "MYSERVERNAME";
var sc = new System.ServiceProcess.ServiceController(svcName, machineName);
sc.Stop();
sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped);
}
}
ich sehr glücklich sein würde, wenn mir jemand helfen könnte!
ps: Mein Powershell-Skripts funktionierte wie ein Charme, aber ich möchte es anspruchsvollere aussehen :)
Edit1: Der Server, auf dem ich versuche, den Dienst zu beenden/starten ist kein Mitglied der Domäne, aber jeder Mitglied der Domäne sollte den Dienst stoppen/starten können.
Haben Sie auf den entfernten Rechner authentifizieren? Es wäre sehr unangenehm, wenn jeder mit einer IP-Adresse Dienste auf einem Remote-Computer starten und stoppen könnte. –
Wenn Sie ein Powershell-Skript haben, das funktioniert, können Sie das Skript immer einfach starten und es ausführen lassen. –
haben Sie versucht, Ihre App mit erhöhten Rechten auszuführen? – swe