AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Privilegien für Dienst Stop/Start

Privilegien für Dienst Stop/Start

Ein Thema von Hobbycoder · begonnen am 2. Mai 2017 · letzter Beitrag vom 3. Mai 2017
Antwort Antwort
Seite 1 von 2  1 2   
Hobbycoder

Registriert seit: 22. Feb 2017
887 Beiträge
 
#1

Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 16:24
Hi,

mit dieser Funktion http://www.delphipraxis.net/29-abmel...-98-me-nt.html demonstriert Daniel wie man sich die Privilegien für Shutdown, Reboot, etc. holt.

Könnte gleiches auch für das Stoppen und Starten von Diensten funktionieren? Dann natürlich nicht mit SeShutdownPrivilege, sondern mit einem anderen PrivilegeName.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.456 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 16:43
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 2. Mai 2017 um 16:45 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
887 Beiträge
 
#3

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 16:54
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 17:02
Die einzelnen Privilegien findest du hier:
https://docs.microsoft.com/en-us/win...hts-assignment

Speziell für Services habe ich allerdings nichts gesehen auf den ersten Blick.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.633 Beiträge
 
Delphi 5 Professional
 
#5

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 17:04
Selbstverständlich gibt's eine Liste der Privilegien: Privilege Constants. Aber ich seh da nix in Richtung Starten/Stoppen von Diensten. Ist eigentlich auch logisch, denn jedes Objekt im Windows - und damit auch jeder Dienst - kann separate Zugriffsrechte haben, so dass dir ein Recht zum Ändern des Dienststatus nicht für alle Dienste etwas bringen muss.

Grüße
Dalai
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
887 Beiträge
 
#6

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 17:08
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.633 Beiträge
 
Delphi 5 Professional
 
#7

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 17:25
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.456 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 17:44
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. https://msdn.microsoft.com/de-de/lib.../ms684323.aspx
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 2. Mai 2017 um 17:52 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
887 Beiträge
 
#9

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 18:02
So http://www.delphipraxis.net/88581-di...-abfragen.html in einer für meine Zwecke angepassten Version.

Es soll auch nicht die ganze Anwendung Adminrechte haben. Das wär nur die Holzhammermethode.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.456 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Privilegien für Dienst Stop/Start

  Alt 2. Mai 2017, 23:26
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.
http://michael-puff.de/Programmierun...ersonate.shtml

PS: Für Beides gibt es auch einen passenden Button-Style, damit der User gleich Bescheid weiß, was beim Drücken passiert.
Delphi-Referenz durchsuchenTButton.ElevationRequired
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf