Announcement

Collapse
No announcement yet.

Windows Dienste starten als Benutzer XY

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Windows Dienste starten als Benutzer XY

    Tagchen Xperten,

    ich seitze grad vor dem Problem einen bestimmten externen Windows dienst, der bereits als solcher eingetragen ist quasi umzustarten.

    Er soll nciht als lokales Systemkonto, sondern bspw als Benutzer XY laufen.

    Nru leider finde ich trotz langer Googelei nur Links, wie man denn Dienste unter C# programmeirt und nicht, wie man bereits gestartete manipuliert .

    Ich hoffe, mir kann da jemand helfen.

    MfG
    Christoph

  • #2
    Hallo!
    Such mal in der MSDN und bei Google nach den Stichwörtern.
    ManagementScope,
    Service,
    ObjectQuery.

    Da wirst Du bestimmt fündig

    Comment


    • #3
      Ja, ich bin fündig geworden, leider nicht nach dem, was ich gesucht habe.

      Die Google Suche
      http://www.google.de/search?hl=de&ie=UTF-8&q=ManagementScope+Service+ObjectQuery

      http://www.google.de/search?hl=de&biw=1280&q=Management+Scope+%2BServic e+%2BObject+Query+%2Bc%23&btnG=Suche&meta=

      bringt gar keine bzw. Ergebnisse, die keinen Bezug zu meinem Problem haben.

      und auch die MSDN Suche
      http://search.microsoft.com/search/results.aspx?View=de-de&st=a&na=81&c=10&qu=ManagementScope%20Service%20 ObjectQuery&qp=&qa=&qn=&s=1

      bringt nichtmal ein Ergebnis.

      Wenn ich spezifizierter nach Service suche finde ich zwar einiges, jedoch nur etwas dazu, wie man Dienste mit .NET schreibt. das wollte ich jedoch (noch) nicht.

      MfG
      Christoph
      PS.
      Ich habe auch noch ähnliche Google Suchen gestartet, jedoch war das Ergebnis auch kein erfolgreiches

      Comment


      • #4
        Tach.
        Vielleicht solltest Du Deine Suchmethoden verbessern
        Naja, ich hab mal gegoogelt und folgendes aus den Infos
        zusammengebastelt:
        public void Change(string ServiceName, string Username, string Password)
        {
        ManagementPath myPath = new ManagementPath();
        ManagementBaseObject outParams = null;
        myPath.Server = System.Environment.MachineName;
        myPath.NamespacePath = @"root\CIMV2";
        myPath.RelativePath = "Win32_Service.Name='" + "ServiceName" + "'";
        ManagementObject service = new ManagementObject(myPath);
        ManagementBaseObject inputArgs = service.GetMethodParameters("Change");
        inputArgs["StartPassword"]= Password;
        inputArgs["StartName"] = Username;
        service.InvokeMethod("Change",inputArgs,null);
        }

        Bei mir funzt es so!
        Bod

        Comment


        • #5
          Wobei man dazu sagen muss, dass der UserName ein vorangestelltes ".\" braucht, wenn es sich um einen lokalen Benutzer handelt

          @Bodo:
          Wonach hats Du eigentlich gesucht?
          (gefunden hab ichs nun auch, aber es waren ja auch konkrete Methoden- und Klassennamen vorhanden

          Comment

          Working...
          X