![]() |
RunAs /netonly
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; |
Re: RunAs /netonly
Ok, das Problem hat sich gelöst und der Code ist auch korrekt. Der Fehler bestand lediglich darin das der Anwender eine IP-Adresse angegeben hat und damit kommt die CreateProcessWithLogonW-Funktion nicht klar. Man muss also erst die IP in den entsprechenden NETBIOS-Namen umwandeln bzw. gleich den NETBIOS-Namen verwenden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz