Einzelnen Beitrag anzeigen

Dezipaitor

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

Re: RunAs Dialog vor dem Programmstart???

  Alt 23. Apr 2006, 15:16
ich werd noch verrückt.

Sobald ich ImpersonateLoggedOnUser aufgerufen habe - was kann ich dann alles machen?

Sagen wir mit LogonUserW habe ich davor den Administrator eingeloggt.

Jetzt könnte ich doch mit CreateProcess usw die Verwaltung (über Explorer) als Administrator starten. Aber das funktioniert nicht.
Ich habe nicht genug Rechte, wenn ich z.b. Computername ändern will.

Delphi-Quellcode:
if LogonUserW(PWideChar(LoginData.UserName), // UserName
             PWideChar(LoginData.DomainName), // Domäne oder lokaler Rechner
             PWideChar(LoginData.Password), // Password
             {<LOGON32_LOGON_BATCH or LOGON32_LOGON_NETWORK or LOGON32_LOGON_INTERACTIVE>}LoginData.LogonType,
             {<LOGON32_PROVIDER_DEFAULT>,} LoginData.LogonProvider,
             AdminToken)

then begin
if ImpersonateLoggedOnUser(AdminToken)
if not CreateProcessAsUser(
      AdminToken, // client's access token
      'c:\windows\system32\cmd.exe', // file to execute
      nil,nil,nil,true,0,nil,nil,lpStartupInfo,lpProcessInformation) then
  ShowMEssage(SysErrorMessage(GetLastError))
->> Der Client besitzt ein erforderliches Recht nicht.

Muss ich da irgendwas machen?

Ich dachte nach ImpersonateLoggedOnUser, hat der Prozess (MainThread) alle Rechte des Benutzers ( hier Admin) ???

was mache ich falsch?


ich hab das Beispiel verwendet:
http://msdn.microsoft.com/library/de...ess_in_c__.asp

[edit=SirThornberry]Delphi-Tags gesetzt. Mfg, SirThornberry[/edit]
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat