Programm unter anderer Benutzerkennung ausführen
-
Hallo,
ich glaube diese Frage wurde schon oft gestellt, aber für WinApi finde ich einfach keine Lösung:
wie kann ich ein Programm unter anderer Benutzerkennung ausführen?
(User A startet ein Programm als User

Gruß
Fabian
-
CreateProcessWithLogonW
-
Vielen Dank für diesen Tipp, ich werde es gleich mal ausprobieren

Ich hatte erst mit CreateProcess() zumprobiert...
-
Es gibt noch CreateProcessAsUser, aber dazu benötigt man besondere Privilegien, die der normale Benutzer normalerweise nicht hat.
-
Vielen Dank für die hilfreichen Antworten
, ich habe es mit CreateProcessWithLogonW hinbekommen:bool RunAs(wchar_t* szPath, wchar_t* szCmd, wchar_t* szDomain, wchar_t* szUsername, wchar_t* szPassword) { STARTUPINFO StartupInfo = {0}; StartupInfo.cb = sizeof(STARTUPINFO); PROCESS_INFORMATION ProcessInformation = {0}; return CreateProcessWithLogonW( szUsername, // Username szDomain, // Domain szPassword, // Password LOGON_WITH_PROFILE, //Logon Flags szPath, // Application Name szCmd, // Command Line CREATE_UNICODE_ENVIRONMENT, // Creation Flags NULL, // Environment NULL, // Current Directory &StartupInfo, // Startup Info &ProcessInformation)// Process Info != NULL; }Gruß
Fabian
-
Ein Problem gibts noch:
Ich möchte bei einem eingeschränkten Benutzer ein Programm in den Autostart legen, dass sich selbst als Administrator startet (mit dem obigen Code).
Unter Windows XP hat das zur Folge, dass der eingeschränkte Benutzer das Programm nicht mehr beenden kann.
Unter Windows Vista jedoch schon.
Gibt es dafür eine Lösung? (außer einen Diest :D)
Gruß
Fabian
-
Unter Vista kann ein Benutzer mit eingeschränkten Rechten einen Prozess mit höheren Rechten eines anderen Benutzers, zum Beispiel Administrator, beenden? Das halte ich für ein Gerücht.
-
Ja doch "leider" schon.
Wenn man unter einem eingeschränkten Konto mit dem obignen Code ein neues Programm oder das selbige mit Admin-Rechten startet, kann man es trotzdem beenden als eingeschränkter Benutzer.
Ich wäre dir verbunden, wenn du es ausprobieren würdest

-
Das scheint tatsächlich zu gehen, auch schon unter XP. Aber wahrscheinlich nur, weil dir der Elternprozess gehört von dem der Admin-Prozess gestartet wurde.
-
_Luckie schrieb:
Das scheint tatsächlich zu gehen, auch schon unter XP.
Seltsam..
_Luckie schrieb:
Aber wahrscheinlich nur, weil dir der Elternprozess gehört von dem der Admin-Prozess gestartet wurde.
CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP | <----- Ist das damit nicht ausgeschlossen? CREATE_UNICODE_ENVIRONMENTIch denke es wird wohl zum neuen Sicherheitskonzept gehören

Ich versteh's nicht...
Gruß
Fabian