AGB  ·  Datenschutz  ·  Impressum  







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

Adminrechte für eine Prozedur

Ein Thema von Captnemo · begonnen am 23. Okt 2015 · letzter Beitrag vom 27. Okt 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

Adminrechte für eine Prozedur

  Alt 23. Okt 2015, 11:12
HI,

ich möchte in einem Programm 2 Registry-Schlüssel erstellen. Einen in HKEY_LOCAL_MACHINE und einen in HKEY_CURRENT_USER.
Für den in HKLM macht mir die UAC ein Strich durch die Rechnung, wenn ich das Programm "normal" starte. Den Schlüssel kann ich nur erstellen, wenn ich das Programm explizit mit Adminrechten starte. Dann aber kann ich auf den entsprechenden HKCU nicht zugreifen, weil das Programm dann unter einem anderen Benutzerkontext läuft.

Gibt es die Möglichkeit sich innerhalb des Programm's die Adminrechte vom Betriebssystem anzufordern und später wieder abzugeben?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

AW: Adminrechte für eine Prozedur

  Alt 23. Okt 2015, 11:32
Dann aber kann ich auf den entsprechenden HKCU nicht zugreifen, weil das Programm dann unter einem anderen Benutzerkontext läuft.
Das sollte nicht der Fall sein. Oder ist dein Benutzer kein Admin und du startest den Prozess tatsächlich mit anderen Credentials?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.174 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Adminrechte für eine Prozedur

  Alt 23. Okt 2015, 13:22
Dann aber kann ich auf den entsprechenden HKCU nicht zugreifen, weil das Programm dann unter einem anderen Benutzerkontext läuft.
Das sollte nicht der Fall sein. Oder ist dein Benutzer kein Admin und du startest den Prozess tatsächlich mit anderen Credentials?
HKCU als Admin != HKCU normaler User.

Du müsstest wissen unter welchen Key HKEY_USERS der User eigentlich liegt ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.552 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Adminrechte für eine Prozedur

  Alt 23. Okt 2015, 13:37
Ich würde den Schlüssel unter HKLM vom Setup erstellen lassen und den unter HKCU bei Bedarf.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

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

AW: Adminrechte für eine Prozedur

  Alt 23. Okt 2015, 14:51
HKCU als Admin != HKCU normaler User.
Das ist schlicht und einfach falsch. HKCU ist HKCU. Habe es grade nochmal getestet. Werte die ich mit meinem Programm schreibe ohne zu elevaten sind auch dann lesbar, wenn ich den Prozess ausdrücklich per UAC Dialog als Admin starte und andersrum.

Captnemos Problem muss an anderer Stelle liegen.

Macht ja auch gar keinen Sinn. Seit es UAC gibt, ist das Token jedes Admin-Users mit einem zusätzlichen Token verlinkt. Das normale Token hat halt auch bei Admin Accounts nur eingeschränkte Rechte. Wenn man elevated, wird das linked Token zugewiesen, welches die tatsächlichen Adminrechte besitzt. Beide Token gehören aber dem selben Benutzer, deshalb sieht man auch den selben HKCU Key und hat ebenfalls genauso Zugriff auf das jeweilige Benutzerverzeichnis.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.116 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Adminrechte für eine Prozedur

  Alt 23. Okt 2015, 16:41
Nein, er hat Recht.

Benutzer A: Standardnutzer
Benutzer B: Lokaler Admin

Wenn du beim UAC-Prompt nun die Credentials von Benutzer B angibst (wen sollte man sonst nehmen?) dann ist HKCU definitiv der von Benutzer B.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Adminrechte für eine Prozedur

  Alt 23. Okt 2015, 17:32
Ihr redet von 2 unterschiedlichen Szenarien.
Markus Kinzler
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#8

AW: Adminrechte für eine Prozedur

  Alt 26. Okt 2015, 16:42
HI,

Gibt es die Möglichkeit sich innerhalb des Programm's die Adminrechte vom Betriebssystem anzufordern und später wieder abzugeben?
Das Problem hatte ich auch mal...
http://stackoverflow.com/questions/1...86365#19986365

Axel
Alexander Lang
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#9

AW: Adminrechte für eine Prozedur

  Alt 27. Okt 2015, 08:05
Ich habe mich jetzt zu einer anderen Lösung durchgerungen.
In dem entsprechenden Optionspunkt habe ich einen Hinweis eingebaut, dass dieser nur zur Verfügung steht, wenn das Programm mit der Option "Als Administrator ausführen" gestartet wurde. Wird nun das Programm genau so gestartet, werden die eigentlichen Programmfunktionen ausgeblendet und nur diese Option steht zur Verfügung. Die kann der Anwender oder der Admin nun aktivieren.
Beim erneuten Start im "normalen" Modus wird nun Read-Only der Inhalt von HKLM abgefragt und die dazugehörigen HKCU-Einträge ergänzt.
Damit habe ich mein Ziel erreicht. Es können alle notwendigen Einträge vorgenommen werden und ich stelle Sicher, durch das Deaktivieren der normalen Programmfunktion, dass keiner auf die Idee kommt das Programm immer "Als Administrator" auszuführen.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#10

AW: Adminrechte für eine Prozedur

  Alt 27. Okt 2015, 08:54
Ich habe mich jetzt zu einer anderen Lösung durchgerungen.
In dem entsprechenden Optionspunkt habe ich einen Hinweis eingebaut, dass dieser nur zur Verfügung steht, wenn das Programm mit der Option "Als Administrator ausführen" gestartet wurde. Wird nun das Programm genau so gestartet, werden die eigentlichen Programmfunktionen ausgeblendet und nur diese Option steht zur Verfügung. Die kann der Anwender oder der Admin nun aktivieren.
Beim erneuten Start im "normalen" Modus wird nun Read-Only der Inhalt von HKLM abgefragt und die dazugehörigen HKCU-Einträge ergänzt.
Damit habe ich mein Ziel erreicht. Es können alle notwendigen Einträge vorgenommen werden und ich stelle Sicher, durch das Deaktivieren der normalen Programmfunktion, dass keiner auf die Idee kommt das Programm immer "Als Administrator" auszuführen.
Na ja,

man kann's auch umständlich machen.

Axel
Alexander Lang
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:17 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