Wie kann ich einen neuen Prozess mit einem anderen Benutzerkonto unter Windows erstellen?

StackOverflow https://stackoverflow.com/questions/362198

  •  21-08-2019
  •  | 
  •  

Frage

Ist es möglich, einen neuen Prozess auf Windows mit einem anderen Benutzerkonto zu erstellen? Ich weiß, es wird ein Kontextmenü „Ausführen als“ ist, aber ich will es aus Java. Ich habe den Benutzernamen und das Passwort ein.

War es hilfreich?

Lösung

Sie brauchen eine DLL mit dem Java Native Interface (JNI) schreiben wie Sie nicht tun können dies mit reinem Java-Code.

Die DLL selbst braucht die CreateProcessAsUser zu nennen Funktion ein Verfahren im Rahmen eines anderen Benutzers zu erstellen. Um erfolgreich diesen Prozess zu erstellen Sie benötigen ein Zugriffstoken für die Funktion zur Verfügung zu stellen, die sich durch den Aufruf der

Andere Tipps

Es gibt ein Programm namens „runas.exe.“ Sie könnten diesen Prozess ausführen und die entsprechenden Argumente für Ihren Prozess und Benutzername / Passwort angeben. Ich denke, das ist die einfachste Methode.

Ich lief nur über eine Alternative zu dem runas.exe Programm namens MiniRunAs, die das Passwort auf der Kommandozeile übernehmen wird - http://www.source-code.biz/snippets/c/1.htm

Wenn Sie sind in der Lage, es zu installieren mit der Anwendung zusammen, das beweisen kann einfacher als das Schreiben einer JNI DLL.

Je nach Bedarf des Win32-API „ CreateProcessWithLogonW “ist leichter, die benutzen als "CreateProcessAsUser / Logonuser" Funktionen.

Von MSDN Docs:

The CreateProcessWithLogonW and CreateProcessWithTokenW functions are
similar to the CreateProcessAsUser function, except that the caller 
does not need to call the LogonUser function to authenticate the user 
and get a token

RUNAS hat die „/ savecred“ Schalter, können Sie die Anmeldeinformationen nur beim ersten Mal eingeben. Ein mögliches Problem ist, dass wenn / savecred die Anmeldeinformationen speichert es speichert sie für, wenn RUNAS ruft das Benutzerkonto. Dies kann ein enormes Sicherheitsrisiko sein, also seien Sie vorsichtig mit it!

Beispiel unter http://www.rgagnon.com/javadetails/java-0014 .html (am Ende)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top