Ich versuche, ein Programm zu starten, das ein anderes Programm als ein anderer Benutzer mit der Win32-Funktion CreateProcessWithLogon auf einem Windows 7-System startet, aber es gibt Fehler 120 zurück, der Funktion nicht unterstützt.CreateProcessWithLogon gibt Funktion nicht unterstützt
Wenn ich das Programm in den Befehl ausführen, funktioniert es korrekt. Wenn ich auf der anderen Seite das Programm mit ShellExecute starte, bekomme ich den Fehler.
Befehlszeile -> Programm A starten -> Programm A führt CreateProcessWithLogon aus. OK 32-Bit-Programm -> Programm A starten -> Programm A führt CreateProcessWithLogn aus. ERROR
if (!CreateProcessWithLogonW(L"username", L"domain", L"password",
LOGON_NETCREDENTIALS_ONLY, L"C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe", L"iexplore",
NULL, NULL, NULL,
&si, &pi))
DisplayError(L"CreateProcessWithLogonW");
Danke für die Info, aber LOGON_WITH_PROFILE den gleichen Fehler produziert. – Karlth
@Karlth Ich habe natürlich eigenen Code (om Win7 auch) getestet und es funktioniert gut. Wenn Ihr Code-Snippet genau ausgeführt wird - habe ich einen anderen Fehler - 'ERROR_INVALID_LOGON_TYPE', der weg ist, wenn' LOGON_NETCREDENTIALS_ONLY' entfernt wurde oder es mit L "@" als Benutzernamen verwendet wird. Wenn Sie einen anderen Fehler haben - Sie müssen debuggen. möglicherweise Fehler in Ihrem Prozess, aber schneller von allem, was Sie brauchen, setzen Sie bp in 'svchost.exe -k netvsvcs 'Prozess auf' seclogon.SlrCreateProcessWithLogon' und debuggen Sie es - http://i.imgur.com/euZrIio.png oder möglicherweise debug lsass.exe, wenn der Fehler von 'LsaLogonUser' zurückgegeben wird – RbMm