usuarios usuario una puedo pasos para otro invitado cuenta crear contraseña como agregar administrador java windows process account

java - una - no puedo agregar usuarios en windows 10



¿Cómo puedo crear un nuevo proceso con otra cuenta de usuario en Windows? (5)

¿Es posible crear un nuevo proceso en Windows con una cuenta de usuario diferente? Sé que hay un menú contextual "Ejecutar como" pero quiero hacerlo desde Java. Tengo el nombre de usuario y la contraseña.


Hay un programa llamado "runas.exe". Puede ejecutar ese proceso y proporcionar los argumentos apropiados para su proceso y nombre de usuario / contraseña. Creo que ese es el método más simple.


Necesita escribir una DLL usando la Interfaz Nativa de Java (JNI) ya que no puede hacer esto con el código Java puro.

La DLL necesita llamar a la función CreateProcessAsUser para crear un proceso en el contexto de otro usuario. Para crear correctamente ese proceso, debe proporcionar un token de acceso a la función, que se creó al llamar a la función LogonUser (se necesita el nombre de usuario y la contraseña para autenticar a ese otro usuario).


Dependiendo de sus necesidades, la API de Win32 " CreateProcessWithLogonW " es más fácil de usar que las funciones "CreateProcessAsUser / LogonUser".

Desde 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 tiene el interruptor "/ savecred" que le permite ingresar la credencial solo la primera vez. Un posible problema es que cuando / SaveCred guarda las credenciales, las guarda cada vez que RUNAS invoca esa cuenta de usuario. Esto puede ser un gran riesgo de seguridad, así que ten cuidado al usarlo.

Ejemplo en http://www.rgagnon.com/javadetails/java-0014.html (al final)


Acabo de encontrar una alternativa al programa runas.exe llamada MiniRunAs que tomará la contraseña en la línea de comandos - http://www.source-code.biz/snippets/c/1.htm

Si puede instalarlo junto con su aplicación, puede ser más simple que escribir una DLL JNI.