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
CreateProcessWithLogonW. 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