2008-10-06 23 views
15

Me gustaría escribir una pequeña aplicación que desbloquea la estación de trabajo. Para poner las especificaciones de lo que necesito muy simple: Tener un exe que se ejecuta y en un momento definido (digamos a la medianoche) desbloquea la estación de trabajo. Por supuesto, la aplicación conoce al usuario y la contraseña de la cuenta registrada.Desbloquear la estación de trabajo de Windows programáticamente

Conozco la API de LogonUser y he intentado usarla, pero he fallado. ¿Alguien tiene una solución, fragmento de código que realmente funciona para este problema?

Me estoy orientando a sistemas operativos NT5.


Bueno, ya que la gente empezó a preguntar cuál es la razón: Estoy trabajando en una aplicación de uso compartido de escritorio y quiero agregar la función de desbloqueo de la estación de trabajo. Tener la aplicación pequeña y simple para desbloquear la estación en un momento definido es para separar el problema y evitar los detalles de integración.

+0

¿Por qué? ¿Estás seguro de que no hay mejor manera de hacer lo que intentas hacer? – Coincoin

+1

Eso suena como una muy mala idea. ¿Cuál es el propósito de esto? Probablemente haya una mejor solución ... – Will

+1

Estoy bastante seguro de que esta es una mala idea y (realmente espero) imposible también. – GEOCHET

Respuesta

3

Deje que su aplicación se ejecute como un servicio, entonces no necesita el usuario/contraseña ya que está configurado con el servicio.

9

Solo para que tenga una respuesta para esto en lugar de personas dejando respuestas que podrían ser mejores como comentarios.

Esto es ciertamente posible, aunque como mucha gente ya ha dicho que no es muy sabio, ¿qué sucede si alguien está caminando por la computadora mientras se desbloquea, cuánto tiempo tienen para jugar, etc.?

Anway, además de sugerir que tiene un servicio para hacer cualquier trabajo que desee en la computadora, o incluso conectarse de forma remota a la computadora para hacer el trabajo, puede hacer que el usuario use la siguiente información. (en cuanto a 'el código sobresale' puede hacerlo usted mismo)

http://www.paralint.com/projects/aucun/ es una implementación de GINA que le dará los derechos para iniciar sesión incluso si alguien más ya ha iniciado sesión. Observe que podría ser lo que está buscando y es mucho más seguro que desbloquear la estación de trabajo en un momento determinado.

Como alternativa, busque escribir su propia implementación de GINA que desbloqueará a la hora programada.

Información sobre GINA

http://msdn.microsoft.com/en-gb/magazine/cc163803.aspx

http://msdn.microsoft.com/en-us/magazine/cc163786.aspx

Después de que hayas desbloqueado el escritorio Estoy bastante seguro de que vas a querer bloquearlo de nuevo.

http://www.codeproject.com/win32/AntonioWinLock.asp

+0

Gracias por la respuesta. Más exacto hasta ahora. –

+0

@finnw: estoy de acuerdo con el idioma. Lo edité para que sea neutral para la ocupación, espero que esté bien con el OP. Sin embargo, deberías poder eliminar tu -1. –

+1

Otra consideración: GINA se considera obsoleto. Consulte http://msdn.microsoft.com/en-us/magazine/cc163489.aspx –

0

Para mi situación, necesitaba poder restaurar la sesión de la consola después de haber desconectado la sesión de mi terminal (estoy conectarse a un quiosco WinXPe con una pantalla táctil, pero sin teclado).

Aquí hay una solución de línea de comandos que encontré para trabajar. En lugar de cerrar la ventana de mi sesión para desconectarme, ejecuto un archivo por lotes con la siguiente línea. Mi sesión está cerrada y la sesión de la consola se restablece desbloqueada.

  • desbloquear automáticamente estación de trabajo después de la sesión de terminal en WinXP

    tscon.exe 0 /dest:console 
    
  • para Windows Vista/7, el número de sesión de la consola ha cambiado de 0 a 1, por lo que es necesario utilizar

    tscon.exe 1 /dest:console 
    



Enlace de origen: http://arstechnica.com/civis/viewtopic.php?f=15&t=69113

Cuestiones relacionadas