Gast BeowulfOF Geschrieben 13. November 2007 Teilen Geschrieben 13. November 2007 Hallo zusammen, ich komme grade mit einem Tool hier nicht weiter wo ich den Status eines Services auf verschiedenen Rechnern auslesen muss, evtl, später auch noch ändern (also starten/stoppen). In der Regel sind die Anwender des Tools EnterpriseAdmins, somit in der kompletten Domäne berechtigt, wodurch der folgende Code meist funktioniert, aber manchmal müssten sie sich halt mit anderen Userdaten auf dem System anmelden. Da habe ich dann das Problem, wie mache ich das um trotzdem mit dem ServiceController-Objekten arbeiten zu können? using System; using System.Collections.Generic; using System.Text; using System.ServiceProcess; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { try { ServiceController sc = new ServiceController("Schedule", "FQDNOfTargetMachine"); if (sc.Status.Equals(ServiceControllerStatus.StartPending) || sc.Status.Equals(ServiceControllerStatus.Running)) { sc.Stop(); } else { sc.Start(); } } catch { } } } } Dieses Funktioniert, sofern der Anwender die Berechtigungen hat. Aber wie kann ich mich auf dem Zielsystem anmelden, wenn der eigene Account keine notwendigen Berechtigungen hat? MFG BeowulfOF Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 14. November 2007 Teilen Geschrieben 14. November 2007 AFAIK gibt es keine möglichkeit, den ServiceController in einem anderen benutzerkontext als dem aktuellen zu instantiieren. ich hab das in meiner anwendung so gemacht, dass der benutzer die entsprechenden rechte einfach dazubekommen hat, was natürlich im rahmen allenfalls vorhandener sicherheitsrichtlinien ein problem darstellen könnte. bestärkt wird meine meinung dadurch, dass wenn du einen entfernten SCM über die MMC verbindest, auch nicht die möglichkeit hast, einen höher privilegierten benutzer zu übergeben. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast BeowulfOF Geschrieben 15. November 2007 Teilen Geschrieben 15. November 2007 Hmm... wieder einmal eine halb-durchdachte Lösung... Danke für die Informationen, trotzdem. Kennt einer eine andere Lösung? MFG BeowulfOF Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 15. November 2007 Teilen Geschrieben 15. November 2007 in der zwischenzeit das hier gefunden: Command Line Windows Services Manager - The Code Project - C# Programming ich hab mir die sourcen dieses tools zwar noch nicht angesehen, aber dort dürfte die lösung zu finden sein. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast BeowulfOF Geschrieben 15. November 2007 Teilen Geschrieben 15. November 2007 Schade, der meldet sich nur über die WinAPI lokal als anderer Benutzer an, und verbindet sich dann rüber zum Targethost. Schade eigentlich. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.