AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Einzelne Funktionen als Admin ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Einzelne Funktionen als Admin ausführen

Ein Thema von RonnyBausA · begonnen am 27. Mär 2012 · letzter Beitrag vom 17. Apr 2012
Antwort Antwort
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#1

AW: Einzelne Funktionen als Admin ausführen

  Alt 16. Apr 2012, 20:03
Trotz alledem würde es mich interessieren, ob ich z.B. mit einer DLL oder irgendwie anders auch mal eine Funktion mit Adminrechten ausführen kann und wie das ginge.
Das geht mal prinzipiell garnicht, es sei denn du hast diverse Privilegien (bzw. der ausführende Prozeß). Im Endeffekt läuft es auf TCB-Privilegien hinaus ...

Ich rede hier von Impersonation, also dem Annehmen einer anderen Benutzeridentität (pro Thread). Alles andere läuft an Prozeßgrenzen ab und kann daher nicht pro Funktion privilegiert gemacht werden.

Es bleibt noch meine Wunschfunktion über, meinen eigenen Dienst auch mal vom Benutzer starten oder stoppen zu lassen, ohne ihn in die Diensteverwaltung leiten zu müssen.
Kannste doch. Dienste sind genau dazu da Löcher in das Rechtesystem zu bohren um gezielt Funktionalität an unprivilegierte Benutzer zu delegieren.

Sprich: schreibe zwei Dienste, oder registriere deinen Dienst zweimal. Einmal bietet er den Dienst an den du halt jetzt schon anbietest (Dienst A). Einmal bietet er (bspw. auf Basis von Gruppenmitgliedschaften oder anderen Eigenschaften) an Dienst A zu starten und zu stoppen. Schon ist die Sache gegessen und Benutzer können das bequem selber erledigen. Das geht dann ggf. sogar ohne UAC-Dialog, wenn man das so will ...
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
RonnyBausA

Registriert seit: 29. Nov 2011
10 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Einzelne Funktionen als Admin ausführen

  Alt 17. Apr 2012, 07:35
Einmal bietet er den Dienst an den du halt jetzt schon anbietest (Dienst A). Einmal bietet er (bspw. auf Basis von Gruppenmitgliedschaften oder anderen Eigenschaften) an Dienst A zu starten und zu stoppen. Schon ist die Sache gegessen und Benutzer können das bequem selber erledigen. Das geht dann ggf. sogar ohne UAC-Dialog, wenn man das so will ...
Dienst B muss dann aber auch mit dem lokalem Systemkonto laufen, damit er Dienst A starten oder stoppen kann, sehe ich dass richtig?
Und kommt die UAC-Abfrage nicht standardmäßig, wenn ein Dienst gestartet oder gestoppt werden soll?
Das wäre jetzt nur mal für mich zum Verständnis. Da ich für diesen Fall das Starten oder Stoppen des Dienstes sowieso nur in Ausnahmefällen und dann mit Benutzerinteraktion mache funktioniert das prima mit dem Starten der zweiten Instanz meines Programms. Aber vielleicht braucht man so eine Funktion ohne UAC ja mal in einem anderen Programm.

Viele Grüße
Ronny
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#3

AW: Einzelne Funktionen als Admin ausführen

  Alt 17. Apr 2012, 14:02
Dienst B muss dann aber auch mit dem lokalem Systemkonto laufen, damit er Dienst A starten oder stoppen kann, sehe ich dass richtig?
Muß er nicht, aber er muß unter einem Konto laufen welches Dienste starten und Stoppen kann. Dabei handelt es sich um ein Recht und das haben sowobl Admins als auch SYSTEM standardmäßig. Es würde also per SYSTEM funktionieren.

Und kommt die UAC-Abfrage nicht standardmäßig, wenn ein Dienst gestartet oder gestoppt werden soll?
Nein. Dienste laufen in einer anderen Session (seit Vista und früher bei aktivem TS), Fenster können die garnicht anzeigen (es gibt da einen widerlichen Workaround seitens MS, der ist aber nur eine Krücke für Dienste die sich nicht ordentlich benehmen).
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 05:32 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