AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dynamisch Adminrechte anfordern

Ein Thema von greenmile · begonnen am 10. Nov 2010 · letzter Beitrag vom 11. Nov 2010
Antwort Antwort
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#1

Dynamisch Adminrechte anfordern

  Alt 10. Nov 2010, 13:14
Nachdem ich nun die Dateiendungen korrekt setzen konnte (klappt komischerweise unter 7 nicht immer korrekt), habe ich nun das Problem, dass ich dafür auf "CLASSES_ROOT" zugreifen muss und dafür benötige ich Adminrechte. Wie ich die gesamte Anwendung unter Adminrechten laufen lasse, weiß ich, ich möchte jedoch nur dann Adminrechte anfordern, wenn ich eben in CLASSES_ROOT schreiben will. Kurzum: Wie kann ich denn dynamisch, also zur Laufzeit Adminrechte anfordern, ohne gleich die gesamte Anwendung dauerhaft auf den AdminLevel zu heben?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#2

AW: Dynamisch Adminrechte anfordern

  Alt 10. Nov 2010, 13:39
Innerhalb Deines Prozesses: Gar nicht.
Wenn ein Prozess einmal mit einem Security-token läuft war es das. Auch die sog. "Elevation" startet nur einen neuen Prozess mit den angeforderten Rechten.

Einfachste Idee: Das Schreiben in den Key in ein extra-Tool (mini .exe mit nur diesem Zweck) via Elevation aufrufen. Dann kommt der Dialog (oder nicht, je nach eingestellter UAC) und nur diese eine Änderung wird von dem zweiten Tool mit Adminrechten ausgeführt. Danach beendet sich das Tool und meldet Erfolg (oder Mißerfolg) an Deine Anwendung zurück.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Dynamisch Adminrechte anfordern

  Alt 10. Nov 2010, 13:44
Impersonate

Bei Luckie gibt es einen alten Code und auch im Forum steht schon Einiges dazu.

Man kann/konnte einen Thread mit anderen Rechten starten, bzw. diese ändern.

Aber empfohlen wird das nicht und es funktioniert auch nicht immer/mehr.

http://msdn.microsoft.com/de-de/library/w070t6ka.aspx


Also besser ist es, einen eigenen Prozess dafür zu erzeugen (Programm mit Adminrechten starten)
$2B or not $2B
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Dynamisch Adminrechte anfordern

  Alt 11. Nov 2010, 02:00
Mit einem Out-Of-Process-COM-Server!

Hier im Forum steht einiges dazu Hier im Forum suchenVista UAC COM

Ich werkel z.Z. selbst daran, habs nur bis jetzt noch nicht hin gekriegt.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Dynamisch Adminrechte anfordern

  Alt 11. Nov 2010, 08:35
Mach dir doch eine zweite Exe die nur die Funktionen beinhaltet die Admin-Rechte benötigt.
Diese stattest du mit einen passenden Manifest aus das Adminrechte anfordert. Für jede Funktion die Adminrechte benötigt überlegst du dir Aufrufparameter und dann startest du die 2te Exe mit passenden Admin-Rechten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
greenmile

Registriert seit: 17. Apr 2003
1.107 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Dynamisch Adminrechte anfordern

  Alt 11. Nov 2010, 11:07
Genau so habe ich es jetzt gelöst, funktioniert super. Vielen Dank für die Tipps!
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

AW: Dynamisch Adminrechte anfordern

  Alt 11. Nov 2010, 11:35
Mach dir doch eine zweite Exe die nur die Funktionen beinhaltet die Admin-Rechte benötigt
Die SysInternals Tools "ProcessExplorer" und "Autoruns" starten sich selbst mit Adminrechten.
Es müsste als auch ohne 2. Exe möglich sein.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Dynamisch Adminrechte anfordern

  Alt 11. Nov 2010, 11:52
Klar:
- Anwendung (Application.ExeName oder ParamStr(0)) z.B. über CreateProcess mit Adminrechen starten
- und dieser dabei via Parameter mitteilen was gemacht werden soll.
- Ohne Parameter normal starten.

Eventuell auch abfragen, ob man es selber machen kann (Adminrechte schon vorhanden) und sich dafür nicht nochmal selber starten.



Oder "hierfür brauche ich Adminrechte (vorher prüfen) und starte mich deshalb gleich neu [ok] [abbgrechen]" und sich danach selber beenden ... neuer Prozess macht dann mit seinen Adminrechten weiter.
$2B or not $2B
  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 03:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz