Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm im Programm mit standard Rechten starten..?! (https://www.delphipraxis.net/35583-programm-im-programm-mit-standard-rechten-starten.html)

freakfly 9. Dez 2004 12:00


Programm im Programm mit standard Rechten starten..?!
 
Hallo!

Ich habe ein Problem, und werde mal versuchen dieses zu erklären....
Ich bin am PC eingelogged als unser "Standard". Ich habe ein Programm gecodet, dass ein anderes mit einem anderen User startet (User "RunAppl"). Dies mache ich mit MSDN-Library durchsuchenCreateProcessWithLogonW. Aus diesem Programm muss wieder ein Programm gestartet werden, aber wieder mit den Rechten des angemeldeten Benutzers.
Dies würde zwar auch mit derselben Funktion gehen, aber dazu müsste ich immer das Passwort des bereitsangemeldeten Benutzers wissen....

Wenn jemand Fragen und Ideen hat, bitte posten!!!

Danke, Gruß, Freakfly

Assarbad 26. Dez 2004 15:21

Re: Programm im Programm mit standard Rechten starten..?!
 
Zitat:

Zitat von freakfly
Ich habe ein Problem, und werde mal versuchen dieses zu erklären....
Ich bin am PC eingelogged als unser "Standard". Ich habe ein Programm gecodet, dass ein anderes mit einem anderen User startet (User "RunAppl"). Dies mache ich mit MSDN-Library durchsuchenCreateProcessWithLogonW. Aus diesem Programm muss wieder ein Programm gestartet werden, aber wieder mit den Rechten des angemeldeten Benutzers.
Dies würde zwar auch mit derselben Funktion gehen, aber dazu müsste ich immer das Passwort des bereitsangemeldeten Benutzers wissen....

Wenn jemand Fragen und Ideen hat, bitte posten!!!

Okay, User A startet Programm A im Kontext von User B. Danach läuft Programm A also im Kontext von User B. Wenn du normal per ShellExecute() von Programm A (im Kontext von User B) aus ein weiteres Programm B startest, geschieht dies ebenfalls im Kontext von User B. Soll Programm B nun aber wiederum im Kontext von User A gestartet werden, so mußt du CreateProcessWithTokenW() benutzen und vorher mit DuplicateToken() eine Kopie des Logontokens von User A an Programm A weitergeben. Somit kann Programm A das Programm B im Kontext von User A starten ohne das Paßwort zu kennen, denn User A ist ja bereits eingeloggt, es existiert also ein gültiges Token

;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 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