![]() |
Privilegien für Dienst Stop/Start
Hi,
mit dieser Funktion ![]() Könnte gleiches auch für das Stoppen und Starten von Diensten funktionieren? Dann natürlich nicht mit SeShutdownPrivilege, sondern mit einem anderen PrivilegeName. |
AW: Privilegien für Dienst Stop/Start
Jupp.
Privileg ist Privileg. Du brauchst nur auch noch das Privileg um dir das andere gewünchte Privileg holen zu dürfen, sonst bekommst du es nicht. Das heißt, der/ein Benutzer muß das Privileg besitzen und dann kann sich die Anwendung es auch holen. |
AW: Privilegien für Dienst Stop/Start
Aber wie komme ich an den PrivilegeName? Danial hat das ja in seinem Beispiel "hard coded" drin. Im MSDN sind die nicht aufgeführt bzw. hab ich's nicht gefunden.
|
AW: Privilegien für Dienst Stop/Start
Die einzelnen Privilegien findest du hier:
![]() Speziell für Services habe ich allerdings nichts gesehen auf den ersten Blick. |
AW: Privilegien für Dienst Stop/Start
Selbstverständlich gibt's eine Liste der Privilegien:
![]() Grüße Dalai |
AW: Privilegien für Dienst Stop/Start
Das ist aber Jammerschade.
Weil z.Zt. geht's halt nur, wenn ich die Anwendung explizit "Als Administrator" ausführe. Das sollte aber nicht Sinn und Zweck des ganzen sein. Und da ein Manifest zu erstellen, dass sie immer als Admin startet möchte ich eigentlich auch vermeiden. |
AW: Privilegien für Dienst Stop/Start
Dann erstell dir ein kleines Hilfsprogramm, das besagtes Manifest beinhaltet und von deinem regulären Programm aufgerufen wird. Das kann man auch so gestalten, dass das Hilfsprogramm den Dienstnamen und die Operation (Starten/Stoppen) per Parameter entgegennimmt.
Alternativ kannst du auch ein bereits existierendes Hilfsprogramm einbinden (sofern das dessen Lizenz erlaubt, wenn du dein Programm weitergibst), z.B. psservice.exe oder das schon im Windows vorhandene sc.exe. Ausführen solcher Hilfsprogramme geht mit ShellExecute(Ex) - das Verb runas erlaubt das Starten (fast) beliebiger Programme als Administrator. Grüße Dalai |
AW: Privilegien für Dienst Stop/Start
Die API zum Starten/Stoppen haben noch einen Parameter für ein Rechte-Token.
Du kannst ja schauen, ob du an ein Token ran kommst, mit den nötigen Privilegien/Rechten. Es muß nicht die ganze Anwendung diese Rechte besitzen. Wie startest du denn den Service? PS: Lies auch mal die Remarks. ![]() |
AW: Privilegien für Dienst Stop/Start
So
![]() Es soll auch nicht die ganze Anwendung Adminrechte haben. Das wär nur die Holzhammermethode. |
AW: Privilegien für Dienst Stop/Start
Wie schon erwähnt, kann man sich selber oder eine zusätzliche kleine Anwendung via runas und/oder AdminManifest starten, als Hintergundanwendung mit UAC-Abfrage.
Oder man hat das Privileg zur Impersonation und kann "kurzzeitig" einen Thread mit anderen/höheren Rechten laufen lassen. ![]() PS: Für Beides gibt es auch einen passenden Button-Style, damit der User gleich Bescheid weiß, was beim Drücken passiert. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 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-2025 by Thomas Breitkreuz