AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Vista: Ein Programm mit Benutzerrechten starten
Thema durchsuchen
Ansicht
Themen-Optionen

Vista: Ein Programm mit Benutzerrechten starten

Offene Frage von "Stephan"
Ein Thema von Stephan · begonnen am 12. Mai 2007 · letzter Beitrag vom 21. Aug 2007
Antwort Antwort
Seite 1 von 3  1 23      
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#1

Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 17:04
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!
viele Grüße

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 18:15
Hier findest du die Antwort Aktion mit anderen User rechten ausführen
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 18:30
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).
viele Grüße

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 19:04
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 19:07
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?
viele Grüße

Stephan
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#6

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 20:02
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 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 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.
  Mit Zitat antworten Zitat
Stephan

Registriert seit: 28. Jun 2002
Ort: Tuttlingen
245 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 20:37
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
viele Grüße

Stephan
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 20:52
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
475 Beiträge
 
Delphi 12 Athens
 
#9

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 21:02
Zitat von alcaeus:
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 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!?
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#10

Re: Vista: Ein Programm mit Benutzerrechten starten

  Alt 12. Mai 2007, 21:08
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?
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:50 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