Thema: Delphi RunAs /netonly

Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#1

RunAs /netonly

  Alt 31. Jul 2006, 19:39
Weiss jemand zufällig wie der Windows-eigene Befehl "runas /netonly" intern funktioniert? Bisher bin ich davon ausgegangen das ich bei CreateProcessWithLogonW einfach nur das Logon-Flag von LOGON_WITH_PROFILE auf LOGON_NETCREDENTIALS_ONLY ändern muss. Leider scheint das aber nicht zu reichen.

Ein Anwender meines Programmes (ist etwas in der Art wie Luckies RunAsUser) hat mir geschrieben das es zwar mit dem "/netonly"-Parameter beim Windows-eigenen RunAs funktioniert, aber wenn er mein Programm verwendet und die Checkbox für LOGON_NETCREDENTIALS_ONLY setzt funktioniert es nicht mehr. Deshalb meine Vermutung das Microsoft da noch etwas mehr macht als nur das Logon-Flag zu ändern. Die Frage ist nur was?

Hier mal den Code den ich verwende (nur das wichtigste):
Delphi-Quellcode:
const
  LOGON_WITH_PROFILE = $00000001;
  LOGON_NETCREDENTIALS_ONLY = $00000002;

var
  si: STARTUPINFOW;
  pif: PROCESS_INFORMATION;
begin
  // StartUpInfoW setzen
  si.cb := SizeOf(startupinfow);
  si.dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK;
  si.wShowWindow := SW_SHOWDEFAULT;
  si.lpReserved := nil;
  si.lpDesktop := nil;
  si.lpTitle := nil;

  // CreateProcessWithLogonW ausführen...
  CreateProcessWithLogonW('Benutzer', 'PC', 'Passwort', // Anmeldedaten
                          LOGON_WITH_PROFILE, // Logon-Flag
                          'Irgendeine_Anwendung.exe', // Anwendung
                          nil, // Parameter
                          CREATE_DEFAULT_ERROR_MODE or CREATE_UNICODE_ENVIRONMENT,
                          nil,
                          nil,
                          si,
                          pif);
end;
  Mit Zitat antworten Zitat