Einzelnen Beitrag anzeigen

Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#13

Re: Neuer Prozess im Benutzermodus (wenn Quellprogramm asAdm

  Alt 22. Apr 2009, 10:11
Zitat von Exceeder:
Bei CreateProcess scheint es zum Beispiel auch so zu sein, dass ein Programm welches im normalen Benutzerkontext arbeitet keinen Prozess erzeugen kann, welcher laut Manifest Administratorrechte benötigt. CreateProcess schlägt dann fehl (mit welcher Meldung genau weiß ich nicht mehr). Diesen Fall habe ich ja zum Beispiel, wenn das Hauptprogramm das Updatepaket herunterlädt und anschließend dann mit Setup.exe -update "MyZipPackage.zip" aufruft. Wenn man diesen Aufruf mit ShellExecute vornimmt erscheint korrekt die UAC und fragt den Benutzer, ob er das ganze zulässen möchte und fordert noch das Administratorpasswort an.

Hat soetwas denn noch niemand gemacht?
That's by design. Die UAC läuft auf dem Level von ShellExecute ab. CreateProcess ist eine ebene tiefer und hat keine Ahnung von UAC.
Daher sollte man nicht asAdmin ins Manifest schreiben, wenn das Prog auch mal als normaler User laufen soll. Man kann auch im Programm noch nachträglich einen neuen Prozess mit Adminrechten starten:
http://blog.delphi-jedi.net/2008/04/...in-privileges/
http://blog.delphi-jedi.net/2008/03/...ta-with-jwscl/



Zitat von Dust Signs:
Vielleicht hilft dir das CREATE_PRESERVE_CODE_AUTHZ_LEVEL-Flag (siehe http://msdn.microsoft.com/en-us/libr...63(VS.85).aspx) oder ein expliziter Security-Descriptor (http://msdn.microsoft.com/en-us/libr...60(VS.85).aspx)
Soweit ich mir denken kann ist CREATE_PRESERVE_CODE_AUTHZ_LEVEL für Prozesse in Jobs gedacht. Diese Prozesse kann man einschränken. Auch deren Kinder werden eingeschränkt. Jedoch ist es mit diesem Flag vermeidbar.
Ein SD bringt hier nix.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat