5 votos

¿Puedo iniciar un programa desde línea de comandos para otra sesión de usuario?

Tenemos un equipo con Windows Server 2008 que ejecuta Servicios de Terminal server. Cuando los usuarios de inicio de sesión, un programa personalizado se pone en marcha y reside en la bandeja del sistema que les da un poco de personalizar teclas de acceso rápido para nuestra empresa.

Cuando tenemos la necesidad de actualizar este programa, tenemos que cerrar todas las copias del programa de los períodos de sesiones antes de que la nueva versión tendrá efecto (más info aquí). Puedo terminar el proceso para todas las sesiones fácilmente con Taskkill, pero quiero saber si hay una manera fácil para reiniciar el proceso para todas las sesiones después.

Tengo acceso a la cuenta de administrador, pero no tengo acceso a ninguna otra de las contraseñas de usuario.

Es posible iniciar un programa de línea de comandos para otro usuario que ha iniciado sesión?

4voto

HopelessN00b Puntos 38607

No. Windows no ofrece el tipo de usuario de la suplantación de la capacidad que usted está preguntando acerca de aquí. No hay sudo equivalente, o incluso aproximación en Windows.

No puedo encontrar el documento o artículo en el momento, pero no permitiendo sudo-estilo de la suplantación de usuarios funcionalidad en Windows era una deliberada decisión de diseño de camino de vuelta en los primeros días del núcleo NT, y como resultado, estamos muy mucho palo con ella. (No hay siquiera una inteligente soluciones o hacks para eludir ella, ya que generalmente son - esto es demasiado rooteado para conseguir alrededor.)

En el mundo de Windows, con el fin de realizar [prácticamente] cualquier acción como usuario (si se está ejecutando un programa, que se autentica contra AD o cualquier otra cosa), que requieren de un token de acceso, que se utiliza para identificar y autenticar el usuario en su acceso o privilegios. Este token de acceso es sólo crea cuando el nombre de cuenta del usuario y la contraseña son suministrados (en inicio de sesión, por RunAs, y así sucesivamente).

La potencialmente importante advertencia (por sus efectos) es que existe un token de acceso se puede duplicar en un símbolo de representación, que puede ser pasado a la función ImpersonateLoggedOnUser, que puede ser utilizado para suplantar el contexto de seguridad de un usuario que ha iniciado sesión.

Viendo que eres uno de esos desarrolladores/programadores que puedan saber cómo trabajar con el arcano magiks de .NET, esto puede ser útil para usted en la escritura de una pequeña aplicación para conseguir lo que quieres hacer.

Sin embargo, para ser, precisamente, claro, no hay ningún comando se puede ejecutar o proceso a seguir para suplantar a un usuario de Windows, corto de codificación de una (o de encontrar uno que alguien codificado), e incluso entonces, se limita a los usuarios, cuya tokens de acceso están disponibles (sesión de los usuarios).

2voto

jscott Puntos 17041

Si los usuarios estén conectados, usted puede usar algo como owexec para poner en marcha procesos como ellos. No se necesita su contraseña. Lo usamos para algo muy parecido a lo que tú describes, salvo la parte de servicios de Terminal Server.

Puede que necesite agregar algunas secuencias de comandos para reunir sesiones activas todo, luego les cada uno, Blanco individualmente, con la -u opción.

-1voto

Neus Agudo Puntos 70

Si se trata de un software local y no un RemoteApp, entonces supongo que el más útil en tu caso estaría utilizando PsExec:

http://technet.Microsoft.com/en-US/Sysinternals/bb897553.aspx

Más ejemplos de un uso, se puede ir a http://windowsitpro.com/systems-management/psexec

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: