![]() |
Anwendung aus einem Dienst heraus starten
Hallo allerseits,
ich möchte einen Windows Dienst schreiben, der es mir erlaubt, auch mit normalen Benutzerrechten einen bereits installierten Tomcat mit Administratorrechten zu starten. Der Tomcat soll dabei nicht als Dienst, sondern als Applikation gestartet werden. Bisher habe ich nur die Möglichkeit mittels ShellExecute gefunden, wobei mir in einbem anderen Thread dringend davon abgeraten wurde. Welche anderen Möglichkeiten habe ich, um den Dienst erstmal überhaupt den Tomcat starten zu lassen? Danke im voraus Trille |
Re: Anwendung aus einem Dienst heraus starten
Michael hat Dir (aus guten Gründen) davon abgeraten das als Dienst zu realisieren. Er hat nicht von ShellExecute abgeraten.
Was spricht dagegen, das Mittels 'runas' mit hinterlegten Credentials zu realisieren? |
Re: Anwendung aus einem Dienst heraus starten
Zitat:
Er möchte, dass der Administrator den Dienst installiert und das dieser bei Systemstart mit gestartet wird. Ein normaler Anwender soll sich dann mit Hilfe dieses Dienstes den Tomcat mit Administratorberechtigung starten können. Warum das genau so sein soll, erschliesst sich mir auch nicht. |
Re: Anwendung aus einem Dienst heraus starten
Zitat:
Technisch wird die gewünschte Lösung und Zeiten von Würmern und Viren von Windows mehr und mehr unmöglich gemacht. |
Re: Anwendung aus einem Dienst heraus starten
*seufz*
Was an Zitat:
Um das mal in Tacheles zu übersetzen: Du kannst aus einem Dienst heraus keine Anwendungen starten, die auf dem User-Desktop laufen. Würde der Tomcat als Dienst laufen, dann wäre das was anderes. Dann könntest Du einen Dienst und ein Desktop-Tool schreiben. Das Desktop Tool könnte dann mit Deinem Dienst kommunizieren und darüber dann den anderen Dienst (also den Tomcat) starten bzw. beenden. |
Re: Anwendung aus einem Dienst heraus starten
Ah ok, das hatte ich nicht richtig gelesen, sorry.
Also angenommen, der Tomcat wuerde als Dienst laufen, wie könnte ich dann anfangen? |
Re: Anwendung aus einem Dienst heraus starten
Du brauchst folgendes:
1. Dienst. Während er läuft macht er gar prinzipiell gar nichts, ausser auf eine Verbindung der Clientanwendung zu warten (Stichwort IPC, wie auch immer). Für die Clientanwendung bietet er zwei Funktionen an: Tomcat starten und Tomcat stoppen. Die machen genau das: Den Tomcat-Dienst starten oder stoppen. Hier mal ein Ansatzpunkt: ![]() 2. Die Clientanwendung. Sie bietet dem Benutzer diese zwei Funktionen an, und reicht sie eben via IPC an den Dienst durch. That's it. |
Re: Anwendung aus einem Dienst heraus starten
Meine Nachfrage hat ergeben, dass der Tomcat definitiv als Applikation laufen muss. Jedoch muss er nur gestartet werden, es muss also auch nix zu sehen sein. Ist dies möglich oder geht das nicht?
|
Re: Anwendung aus einem Dienst heraus starten
Zitat:
|
Re: Anwendung aus einem Dienst heraus starten
Das ist egal, da Logfiles benutzt werden. Mit welchen Rechten läuft denn dann der Tomcat? Mit denen des Dienstes oder mit denen des aktuell angemeldeten Benutzers?
|
Re: Anwendung aus einem Dienst heraus starten
wenn dein Dienst etwas startet läuft es mit den Rechten des Dienstes. Startest du den Dienst mit Adminrechten läuft das Programm mit Adminrechten. Startest du den Dienst normal läuft es eben mit den üblichen Dienstrechten.
|
Re: Anwendung aus einem Dienst heraus starten
Ich liebe diesen Thread!!! :dp:
Ihr alle liegt mal soooooooooooooooooo weit daneben, wenn ihr glaubt, dass man mit einem Dienst kein Programm für den Anwender als Admin starten lassen kann. Die Zutaten dazu sind: 1. ein Token des Nutzers 2. eins neues Token (hier geht's schon los) 3. und natürlich CreateProcessAsUser 4. dazu noch SetTokenInformation für die SessionID Es ist wie bei dem ColaRezept. Die Zutaten kennt man. Aber wie mischt man sie? :wall: Ist natürlich hochkompliziert. :gruebel: :warn: Das ganze ist jedoch höchst gefährlich und kann bei jeder neuen Windowsversion (auch die alten) ein Problem erzeugen. Im Moment funkz es zumindest bei mir gut :mrgreen: :warn: Warum gefährlich? Naja, ein normaler Benutzer könnte die Tomcat Dateien durch eigene ersetzen. D.h. man muss diese erstmal unersetzlich machen. (ACL) :dance: Aber ich verweise gerne mal auf die ![]() ![]() |
Re: Anwendung aus einem Dienst heraus starten
Zitat:
|
Re: Anwendung aus einem Dienst heraus starten
Zitat:
![]() Hier geht es doch um: Dienst soll Programm starten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz