Programm unabhängig von Benutzeranmeldung laufen lassen



  • Ich habe ein Programm, dass ich serviceähnlich im Hintergrund laufen lassen möchte (ein Service wäre eine Möglichkeit, ich suche aber erstmal nach einer anderen Lösung). Dabei soll das Programm nach dem Start weiter laufen, auch wenn sich der Nutzer abmeldet. Eine Interaktion mit dem Nutzer ist nicht erforderlich. Wichtig aber: der Prozess muss unter diesem Benutzer laufen, nicht z.B. als SYSTEM-User.

    Der Taskmanager bietet an, den Benutzer beim Starten des Programmes anzugeben. Außerdem bietet er die Möglichkeit, das Programm auch zu starten, wenn der Nutzer nicht angemeldet ist. Genau so möchte ich mein Programm auch starten, unter dem Nutzer, aber unabhängig von dessen Anmeldung.

    Habt ihr ein paar Stichworte für mich?



  • Hmm, wenn ich mir die Prozess-Liste mittels Process-Explorer anschaue, dann sehe ich nur Services welche von winlogon.exe gestartet wurden und Prozesse welche von explorer.exe gestartet wurden. Ansonsten gibt es da nur noch die Betriebssystemsfunktionen.

    Das Ganze soll bedeuteten: Willst du keine Services benutzen schätze ich das du dich mit der Treiberentwicklung bzw. Low-Level Programmen auseinandersetzen musst. WinDDK wäre dann dein Freund.


  • Mod

    Grundsätzlich. Wenn ein Prozess in einer Session gestartet wurde, wird er terminiert wenn die Session stirbt.

    1. Möglichkeit Du benutzt die Task-Scheduler API um den Prozess dort einzutragen.
    http://msdn.microsoft.com/en-us/library/aa446802(VS.85).aspx
    Dabei hast Du die Wahl zwischen der alten API (1.0) und der neuen sehr leistungsfähigen API ab Vista (2.0).
    Du findest massenweise Beispiel Code in diesem MSDN Abschnitt.

    2. Möglichkeit Du schreibst einen Dienst. Auch den Kannst Du einem Benutzer zurodnen.

    Aber ⚠
    Keine diesr Lösungen funktioniert IMHO ohne die Kenntnis des Benutzer Kennwortes. Du kannst also IMHO kein Programm mit einem "Klick" installieren, dass dann unter dem User-Account läuft, ohne dass der Benutzer sein Kennwort zumindest noch einmal eingibt!



  • Vielen Dank für die Beiträge.

    Wie sich herausgestellt hat, ist eine Anmeldung unter dem Benutzer doch nicht unbedingt nötig, vielmehr war das Problem, dass auf dem spezifischen System der Nutzer und der SYSTEM-Nutzer in unterschiedlichen Domänen sind.

    Über kurz oder lang werde ich aber vermutlich sowieso nicht umhin kommen, die Anwendung als Dienst auszuliefern, dort kann man den Benutzer ja dann in der Diensteverwaltung einstellen.


Log in to reply