Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Vista: Ein Programm mit Benutzerrechten starten (https://www.delphipraxis.net/91970-vista-ein-programm-mit-benutzerrechten-starten.html)

Stephan 12. Mai 2007 16:04


Vista: Ein Programm mit Benutzerrechten starten
 
Guten Tag,

Ich habe folgendes Problem: Ich möchte aus meinem Programm (welches mit Adminrechten läuft), ein anderes Programm mit den Benutzerrechten des aktuell eingeloggten Benutzers starten. Wie ist sowas möglich? Geht dies vielleicht über einen speziellen Parameter via ShellExecute?

Danke im Voraus!

SirThornberry 12. Mai 2007 17:15

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Hier findest du die Antwort Aktion mit anderen User rechten ausführen

Stephan 12. Mai 2007 17:30

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Hallo Jens,

Den Thread hatte ich schon gesehen. Wenn ich das aber richtig sehe, muss dafür das Programm die Zugangsdaten des Administrators kennen oder? (das Programm kennt a ber keinerlei Zugangsdaten von irgendeinem Windows Benutzer) Gibt es nicht einen einfacheren Weg, den anderen Benutzernamen schon im ShellExecute zu übergeben?

Die andere Sache ist natürlich, wie ermittel ich mit welchem Benutzer ich gerade eingeloggt bin, wenn der Prozess der dies ermitteln soll, unter einem anderen Benutzer (Admin) gestartet wurde?

Kurz nochmal mein Programm:
programm.exe (läuft unter dem aktuell eingeloggten Benutzer) startet für ein automatisches Update die update.exe mit Adminrechten. Diese downloadet das Update und installiert dieses. Anschließend soll die programm.exe mit den alten Benutzerrechten wieder gestartet werden (auf keinen Fall soll diese Datei Adminrechte erben).


Kurz gesagt: Ich muss aus meiner Anwendung eine andere .exe unter fremden Rechten starten, ohne hierfür irgendwelche Windows Kennwörter kennen zu müssen. (die Anwendung läuft aber schon unter Administratorrechten).

alcaeus 12. Mai 2007 18:04

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Machs ueber 3 Ecken: programm.exe startet update.exe. update.exe startet do_update.exe mit Adminrechten und wartet bis dieses beendet ist. update.exe startet programm.exe (natuerlich mit Benutzerrechten) und die Sache ist gegessen. Nicht schoen, aber wirkt ;)

Greetz
alcaeus

Stephan 12. Mai 2007 18:07

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Hallo Andreas,

Danke für dein Posting. Das würde zwar funktionieren, ist aber (wie ich finde) eine doch sehr unschöne Lösung. Ist das denn die einzige Möglichkeit?

CodeX 12. Mai 2007 19:02

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Zitat:

Zitat von Stephan
Kurz gesagt: Ich muss aus meiner Anwendung eine andere .exe unter fremden Rechten starten, ohne hierfür irgendwelche Windows Kennwörter kennen zu müssen.

Unter fremden Rechten? Das wird ohne Benutzernamen+Passwort kaum gehen. Und nach logischem Überlegen ist das generell gesehen auch gut so.

Zitat:

Zitat von Stephan
programm.exe (läuft unter dem aktuell eingeloggten Benutzer) startet für ein automatisches Update die update.exe mit Adminrechten. Diese downloadet das Update und installiert dieses. Anschließend soll die programm.exe mit den alten Benutzerrechten wieder gestartet werden (auf keinen Fall soll diese Datei Adminrechte erben).

1. programm.exe ruft update.exe auf
2. update.exe prüft, ob es adminrechte hat, falls nicht, startet es sich mit verschlüsselt gespeicherten admin-anmelde-daten neu und beendet die laufende instanz.
3. update.exe hat adminrechte und macht das update.
4. update.exe sendet ein signal an programm.exe und beendet sich selber
5. programm.exe erhällt signal und startet sich selbst neu und beendet die laufende instanz.

sollte imho so gehen.

Zitat:

Zitat von Stephan
Die andere Sache ist natürlich, wie ermittel ich mit welchem Benutzer ich gerade eingeloggt bin, wenn der Prozess der dies ermitteln soll, unter einem anderen Benutzer (Admin) gestartet wurde?

Das wüsste ich auch gerne.

Stephan 12. Mai 2007 19:37

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Zitat:

Und nach logischem Überlegen ist das generell gesehen auch gut so.
Warum? Dass dies als Standardbenutzer nicht gehen darf, das ist klar. Aber als Admin habe ich doch schon (fast) die höchsten Rechte. Unter Linux geht das ja auch, wenn ich root bin kann ich mit "su" auch ohne Benutzerkennwort mich unter jedem anderen Benutzeraccount anmelden :)

alcaeus 12. Mai 2007 19:52

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Zitat:

Zitat von CodeX
2. update.exe prüft, ob es adminrechte hat, falls nicht, startet es sich mit verschlüsselt gespeicherten admin-anmelde-daten neu und beendet die laufende instanz.

Autsch. Der Benutzer muss wenn schon sein Passwort eingeben, gespeichert wird da nichts.

Greetz
alcaeus

CodeX 12. Mai 2007 20:02

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Zitat:

Zitat von alcaeus
Zitat:

Zitat von CodeX
2. update.exe prüft, ob es adminrechte hat, falls nicht, startet es sich mit verschlüsselt gespeicherten admin-anmelde-daten neu und beendet die laufende instanz.

Autsch. Der Benutzer muss wenn schon sein Passwort eingeben, gespeichert wird da nichts.

Warum?
Wenn das ganze automatisiert werden soll, dann kann man den Benutzer die Daten ein Mal eingeben lassen, diese verschlüsselt speichern und dann bei Bedarf darauf zurückgreifen.
(Klar, ist in gewisser Weise ein Sicherheitsrisiko, aber ich sag mal so: gib mir deinen PC für nen Tag und ich sag dir alle deine Windows Passwörter. ;))


Zitat:

Zitat von Stephan
Zitat:

Und nach logischem Überlegen ist das generell gesehen auch gut so.
Warum? Dass dies als Standardbenutzer nicht gehen darf, das ist klar. Aber als Admin habe ich doch schon (fast) die höchsten Rechte. Unter Linux geht das ja auch, wenn ich root bin kann ich mit "su" auch ohne Benutzerkennwort mich unter jedem anderen Benutzeraccount anmelden :)

Mal abgesehen davon, dass ichs dann trotzdem nicht richtig finden würde, würde es helfen, wenn du dich entscheiden würdest, ob dein Hauptprogramm Adminrechte hat oder nicht. Denn mit Adminrechten sowohl bei programm.exe als auch bei update.exe gibt es doch keine Schwierigkeiten!?

OregonGhost 12. Mai 2007 20:08

Re: Vista: Ein Programm mit Benutzerrechten starten
 
Hmm, man kann doch im Manifest festlegen, dass update.exe mit Admin-Rechten laufen will. Kann man dann nicht auch im Manifest von programm.exe festlegen, dass es bei nur vererbten Admin-Rechten diese nicht benutzen soll? Oder ist kein Rücksprung möglich auf den Benutzer?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 1 von 3  1 23      

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