Autor Beitrag
BeneDiemer
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 25.04.04 23:00 
Hi all,

das ist vielleicht ein bisschen kompliziert...

um Windows updates auszuführen brauche ich auf einem System natürlich admin-Rechte. Ist es prinzipiell möglich, mit einem Delphi-Programm als ein anderer user einzuloggen (gzw.das Programm als ein anderer user auszuführen), der admin-Rechte besitzt?

Danke!
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 26.04.04 18:23 
CreateProcessAsUser.
BeneDiemer Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 26.04.04 18:53 
Danke, habe ich mittlerweile auch gefunden... ;)
vsandre
Hält's aus hier
Beiträge: 2

WinXP Home SP2
D7
BeitragVerfasst: Mi 08.09.04 18:41 
Ich benutze Windows Xp Home mit SP2 und wollte mir jetzt ein ähnliches Programm schreiben. Bei mir kommt aber ständig, dass Benutzer oder Passwort falsch ist, obwohl die hunderprozentig stimmen.
Am liebsten wäre mir ein Bsp.
vsandre
Hält's aus hier
Beiträge: 2

WinXP Home SP2
D7
BeitragVerfasst: Mi 08.09.04 22:23 
Das einzige was mir einfällt woran es liegen könnte ist, dass diese Funktion unter WinXP Home deaktiviert ist.

Hab mal meinen Sourcecode geschickt, vieleicht ist ja doch was falsch.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
procedure TForm1.LoadAsUser();
var
  si: STARTUPINFOW;
  pif: PROCESS_INFORMATION;
  res: Bool;
  s: string;
begin
  //erstmal die StartUpInfoW setzen
  si.cb := SizeOf(startupinfow);
  si.dwFlags  := STARTF_USESHOWWINDOW;
  si.wShowWindow := SW_SHOWDEFAULT;
  si.lpReserved := nil;
  si.lpDesktop := nil;
  si.lpTitle := 'Konsole';

  // dann CreateProcessWithLogonW ausführen...
  res := CreateProcessWithLogonW('andre''.''abc', LOGON_WITH_PROFILE,
    'c:\windows\system32\regedt32.exe''c:\windows\system32',
    CREATE_DEFAULT_ERROR_MODE, nilnil, si, pif);
  if booltostr(res) = '0' then
  begin
    //wenn ein Fehler auftritt, soll der Fehlercode ausgegeben werden
    str(GetLastError, s);
    ShowMessage('CreateProcessWithLogonResult: ' + booltostr(res) + #10 +
      'GetLastError: ' + s + #10 + SysErrorMessage(GetLastError));
  end;
end;