Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Programm nur mit User-Rechten starten von Admin-Prozess

  Alt 4. Dez 2018, 15:38
WTSQueryUserToken wird nur innerhalb eines Service mit aktivem TCB-Privilege funktionieren.

Es ist nicht ganz klar, ob das "andere Programm" mit dem selben User, aber ohne Elevation ausgeführt werden soll, oder als gänzlich anderer User.

Für die Situation, dass eine Un-Elevation ausgeführt werden soll, bieten sich die APIs MSDN-Library durchsuchenCreateRestrictedToken oder MSDN-Library durchsuchenSaferComputeTokenFromLevel an, um ein eingeschränktes Token zu erstellen, das dann für MSDN-Library durchsuchenCreateProcessAsUser verwendet werden kann, um das "andere Programm" un-elevated zu starten.
Siehe auch: https://stackoverflow.com/questions/...s-from-process
Vielleicht sollte ich mal beschreiben, worum es geht.

Standard-Mäßig startet mein Dateimanager-programm mit normalen User-Rechten. Für manche Aufgaben braucht man Admin-Rechte. Das löse ich so, dass einmal ein externes Programm mit Admin-Rechten gestartet wird welches die Aufgaben dann erledigt. Manchmal braucht das Dateimanager-Programm aber selber Adminrechte, um. z.B. bestimmte Verzeichnisse anzuzeigen, die man überhaupt nur mit Adminrechten zu sehen bekommt. Das mache dann so, dass das erwähnte Hilfsprogramm gestartet wird, das Dateimanager-programm beendet wird und dann das Hilfsprogramm das Dateimanager-Programm wieder mit Admin-Rechten startet.

Dann ist die Aufgabe erledigt und man möchte das Datamanager-Programm wieder nur mit User-Rechten laufen lassen. Also wird das Hilfsprogramm wieder aufgerufen, das Dateimanager Programm beendet und das Hilfsprogramm soll das Dateimanager-Programm wieder mit einfachen User-Rechten starten.

Nur - Das Dateimanager-Programm hatte ja zuletzt Admin-Rechte, so dass der aufgerufene Prozess (das Hilfsprogramm) auch Admin-Rechte hat. Das mit Admin-Rechten laufende Hilfsprogramm soll aber dennoch das Dateimanager-Programm nur mit User-Rechten starten.
  Mit Zitat antworten Zitat