![]() |
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. |
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. |
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. |
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.
|
Re: Normaler User / Admin - XP / Vista -> Rechteproblem
Zitat:
Dezipaitors Lösung ist viel besser für eine normale Anwendung. |
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 22:23 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