Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Normaler User / Admin - XP / Vista -> Rechteproblem (https://www.delphipraxis.net/112455-normaler-user-admin-xp-vista-rechteproblem.html)

Pascal P 21. Apr 2008 18:20


Normaler User / Admin - XP / Vista -> Rechteproblem
 
Hallo,

ich hoffe ich werde nicht sofort erschlagen, weil dieses Thema ja nun schon wirklich oft diskutiert wurde, aber leider habe ich mit der Suche keine passende Lösung für mein Problem gefunden.

Ich habe folgendes Problem:

Ich habe ein Programm für Endkunden. Dieses soll sich selbst, als auch verschiedene andere Dateien updaten können.
Ich habe ein Hauptprogramm, dass die beschriebenen Update's herunterladet und eine kleine Konsolenanwendung, die nur heruntergeladene Datei entpackt und anschließend z.B. das Hauptprogramm ersetzt (nachdem sich dieses selbst geschlossen hat).
Mein Hauptprogramm ladet die Dateien in den Anwendungsordner des Users und benötigt daher keine Adminrechte.
Sobald meine Konsolenanwendung gestartet wird (falls mal ein Update vorliegt und es heruntergeladen werden konnte), wird (unter Vista) nach Administratorrechten verlangt (durch eine Manifest-Datei). Unter Vista läuft alles wie gewollt und ohne Probleme (sowohl als Admin, als auch normaler User)
Unter XP funktioniert dies mit dem normalen (eingeschränkten) User allerdings nicht, weil ich keinen Dialog mit einer Passwortabfrage bekommen.

Daher meine Frage:
Wie bekomme ich es unter XP mit einem eingeschränkten User der Konsolenanwendung Adminrechte zu verschaffen? Gibt es eine Möglichkeit beim Start der Anwendung den Dialog mit der Passwortabfrage des Admin zu starten?
Oder muss mein Hauptprogramm bereits als Admin gestartet werden, damit dieses die Rechte "weitergeben" kann (was ich eigentlich nicht möchte, weil der User sonst immer das Passwort eingeben muss, auch wenn nur alle paar Wochen ein Update vorliegt)? Wenn ja: Wie gebe ich diese Rechte weiter? (meine Konsolenanwendung hatte nämlich keine Rechte zu schreiben, obwohl ich mal als Test das Programm mit "Ausführen als..." als Admin gestartet hab)

Ich hoffe das ist einigermaßen verständlich.

Apollonius 21. Apr 2008 18:23

Re: Normaler User / Admin - XP / Vista -> Rechteproblem
 
Frage den Benutzer nach den Daten - und suche dir eine sichere Möglichkeit! Dann kannst du CreateProcessWithLogon verwenden.
Wie das mit der Rechte-Übergabe bei Shellexecute ist, weiß ich nicht. Bei CreateProcess wird das Token aber vererbt.

Dezipaitor 21. Apr 2008 20:38

Re: Normaler User / Admin - XP / Vista -> Rechteproblem
 
ShellExecute mit verb = runas
startet in Vista den Elevation Prompt und unter XP ein Eingabeprompt für Benutzername und Passwort.

SirThornberry 21. Apr 2008 21:02

Re: Normaler User / Admin - XP / Vista -> Rechteproblem
 
Ich finde die Lösung von Avira AntiVir recht gut. Einfach einen Service laufen lassen der sich um die Updates etc. kümmert.

OregonGhost 22. Apr 2008 09:39

Re: Normaler User / Admin - XP / Vista -> Rechteproblem
 
Zitat:

Zitat von SirThornberry
Ich finde die Lösung von Avira AntiVir recht gut. Einfach einen Service laufen lassen der sich um die Updates etc. kümmert.

Und dann hat jede installierte Anwendung auf dem System einen eigenen Update-Dienst? Bei Antivir läuft mehr oder weniger zwangsweise sowieso ein Dienst, aber ich würde schon komisch gucken, wenn jede Popelanwendung gleich noch ihren eigenen Updatedienst mitbringt. Schlechte Lösung.

Dezipaitors Lösung ist viel besser für eine normale Anwendung.

Pascal P 22. Apr 2008 14:57

Re: Normaler User / Admin - XP / Vista -> Rechteproblem
 
Danke für eure Hilfe

Ich habs jetzt, durch den Hinweis von Dezipaitor mit dem verb = runas hinbekommen.

Ich prüfe zuvor, ob es XP und ein normaler User ist und rufe in diesem Fall statt "open" einfach die Exe mit "runas" auf. Funktioniert super! Auch das Fehlerhandling, falls der Benutzer sich nicht authentifizieren kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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