![]() |
Programm mit weniger Rechten starten
Hallo,
ich habe ein Programm das, per Manifest angefordert, immer mit erhöhten Rechten läuft. Dieses Programm muss nun eine andere EXE starten die aber "normale", also weniger, Rechte haben soll. Bei allen meinen Versuchen erbte die neu gestartete EXE natürlich die Rechte des aufrufenden Prozesses. Kann mir jemand einen Tipp geben wie man beim Start eines anderen Programms dieses sozusagen "runter stufen" kann? Danke schon mal, Ralf |
Re: Programm mit weniger Rechten starten
Zitat:
|
Re: Programm mit weniger Rechten starten
Zitat:
Wenn ich das Programm mit Adminrechten starte dann erbt die 2.Instanz die Rechte (bei ShellExecute!!!) |
Re: Programm mit weniger Rechten starten
In welchem OS hast'n das getestet und wie hast du die Rechte geprüft?
|
Re: Programm mit weniger Rechten starten
Zitat:
Elevation hab ich mit einer Funktion aus der JCL getestet:
Delphi-Quellcode:
Das Ergebnis stimmt auch, bei einem UAC-bestätigten Start wird der Status korrekt erkannt.
function IsElevated: Boolean;
const TokenElevation = TTokenInformationClass(20); type TOKEN_ELEVATION = record TokenIsElevated: DWORD; end; var TokenHandle: THandle; ResultLength: Cardinal; ATokenElevation: TOKEN_ELEVATION; begin if (IsWinVista or IsWinServer2008 or IsWin7 or IsWinServer2008R2) then begin TokenHandle := 0; if OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, TokenHandle) then begin try ResultLength := 0; if GetTokenInformation(TokenHandle, TokenElevation, @ATokenElevation, SizeOf(ATokenElevation), ResultLength) then Result := ATokenElevation.TokenIsElevated <> 0 else Result := False; finally CloseHandle(TokenHandle); end; end else Result := False; end else Result := IsAdministrator; end; |
Re: Programm mit weniger Rechten starten
Ich habe jetzt, hier in der DP (wo sonst????), doch noch eine Möglichkeit gefunden:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 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