Avisar al usuario si intenta cerrar sesión


10

Quiero que cierto usuario local no cierre sesión. siempre. Es muy similar a esta pregunta tonta , sin embargo, no necesariamente me importa si los botones están allí, quiero que aparezca un cuadro de mensaje que dice "No cierre la sesión de la consola" con un botón "Aceptar" que luego cancela el cierre de sesión intento. ¿Se puede hacer esto en un script de cierre de sesión?

existen políticas de grupo para deshabilitar el botón de cierre de sesión en el menú de inicio y en el cuadro de diálogo CTRL-ALT-DEL. Sin embargo, lo que me gustaría es más como http://msdn.microsoft.com/en-us/library/ms811998.aspx , que parece no estar en el servidor 2008 R2. ¿O me lo estoy perdiendo?

Incluso intenté desactivar el botón de cierre de sesión al iniciar , pero no funciona, como señaló Matt en esta pregunta similar.

¿Es posible crear un script de cierre de sesión que muestre un cuadro de diálogo advirtiendo al usuario que no cierre sesión y luego cancela el cierre de sesión?

Entiendo que esta es una necesidad tonta, desafortunadamente no está en mi poder cambiar o rechazar. He agotado esas opciones. Siéntase libre de obtener una gran cantidad de votos a favor en un comentario que explique que este es realmente un plan tonto que obviamente mitiga un síntoma de muchos problemas sistémicos en lugar de resolver cualquier cosa. Entiendo completamente que este curso de acción en realidad está creando problemas. Quiero que esto se haga para poder terminar con este contrato y nunca más volver a trabajar con ellos.


18
Este es realmente un plan tonto que obviamente mitiga un síntoma de muchos problemas sistémicos en lugar de resolver cualquier cosa. Este curso de acción en realidad está creando problemas. Termine con este contrato y nunca vuelva a trabajar con ellos.
Michael Hampton

1
Además de ser algo tonto para intentar hacer, también es algo que otras personas no se beneficiarían de saber cómo hacer. Solo va a crear problemas, así que votar para cerrar.
HostBits

3
Si bien estoy de acuerdo en que es un plan tonto, y no sé el motivo, puedo decir que podría beneficiarme de una solución similar. Todos tenemos que lidiar con un estúpido software heredado como un "demonio" que tiene una ventana @ # $ @ # $ @ hecha en VB6 y no se ejecuta como un servicio porque tiene todo tipo de mensaje emergente y usted termina con un clic en OK AuthoHotKey guión cada vez que vienen ... así que la prevención de cerrar la sesión sería útil ...
ETL

1
@MichaelHampton, señor, tiene toda la razón. Debería haber agregado: "Quiero hacer esto para que me paguen y nunca más vuelva a trabajar para ellos". Como señaló ETL, hay todo tipo de maldad heredada ... y como señaló Cheekaleak, cualquier respuesta a esta pregunta contribuirá a la maldad en el mundo. Habiendo dicho eso, todavía quiero hackear esto y terminar.
dfstandish

¿Dónde está la raíz necesita? Si era como yo y necesitabas un proceso / aplicación para ejecutarse como ese usuario con una sesión de escritorio interactiva, entonces podrías buscar obtener Firedaemon y configurar un servicio que se ejecute como ese usuario para esa aplicación con la Sesión 0.
TheCleaner

Respuestas:


14

Cuando tuve la oportunidad de hacer esto, la forma en que deshabilité efectivamente el cierre de sesión (y el apagado / reinicio) es haciendo tres cosas.

  1. Use GPO o políticas de seguridad locales (o una configuración de registro) para eliminar la opción de cierre de sesión disponible a través del menú Ctrl+ Alt+ Del.

    • Para eliminar la opción del menú Ctrl+ Alt+ Del, debe navegar a User Configuration-> Administrative Templates-> System-> Ctrl+Alt+Del Optionsy habilitar la Remove Logoffpolítica.

  2. Use GPO o políticas de seguridad locales (o una configuración de registro) para configurar las opciones disponibles de cierre de sesión, reinicio y apagado disponibles a través del menú Inicio.

    • Para cambiar el comportamiento predeterminado del "Botón de encendido", vaya a User Configuration-> Administrative Templates-> Start Menu and Taskbary habilite la Change Start Menu power buttonpolítica.
      • Establecerlo Lockes probablemente lo que estás buscando.
    • Para eliminar los botones de apagado / reinicio / suspensión / hibernación del menú Inicio, debe navegar a User Configuration-> Administrative Templates-> Start Menu and Taskbary habilitar elRemove and prevent access to the Shut Down, Restart, Sleep and Hibernate command
    • Para eliminar la opción de cierre de sesión, navegue hasta User Configuration-> Administrative Templates-> Start Menu and Taskbary active la Remove Logoff on the Start Menupolítica

  3. Cambie los permisos shutdown.exey logoff.exe(¡gracias, Ryan!) Para que ninguna cuenta de usuario pueda ejecutarlo. (Si no necesita preocuparse por los usuarios que se ejecutan shutdown.exedesde una línea de comandos, puede omitir esto).

    • (Por lo general, dejaré una cuenta de servicio o mi cuenta de administrador de respaldo con permisos para poder volver a cambiarla si es necesario, con un mínimo esfuerzo).
    • Por defecto, está activado C:\Windows\systm32\y los permisos permiten a los usuarios y administradores leer y ejecutar, pero se reserva el control total para SYSTEMy Trusted Installer.
    • Trusted Installer también es el propietario, por lo que para cambiar los permisos, debe tomar posesión con una cuenta administrativa.

Una vez que haya terminado con todo eso, no hay forma de cerrar la sesión, reiniciar, apagar, hibernar o suspender la computadora sin pasar un poco de esfuerzo ... o desconectar el cable de alimentación.

Ahora el menú de inicio de mi servidor se parece a la imagen de abajo (y cambiar de usuario solo permite que otro usuario inicie sesión):

ingrese la descripción de la imagen aquí

Y el menú Ctrl+ Alt+ se Delve así:

ingrese la descripción de la imagen aquí


3
La salsa secreta aquí es que debe cambiar el comportamiento del "botón de encendido"; si no deshabilita el cierre de sesión no tendrá efecto.
thekbb

1
logoff.exe .....
Ryan Ries

4

Preferí agregar esto como un comentario, pero gracias a las políticas del sitio, no debo comentar ...

Con respecto a los scripts de cierre de sesión, no sé qué se puede hacer. Pero en una aplicación C # Windows Forms, puede registrarse para eventos del sistema como SessionSwitch y SessionEnding. El último incluso proporciona una propiedad Cancelar en EventArgs. Tal aplicación .Net podría ayudar en su caso, pero, por supuesto, el usuario podría cerrar esa aplicación primero (o eliminarla del TaskManager) y luego cerrar la sesión.

Por cierto: sí, sé que a veces hay que hacer cosas tan tontas: hay compañías de software que escriben programas que deberían ser Servicios de Windows, pero que se ejecutan con una GUI en una sesión interactiva ...


2
Un programa corto que muestra un cuadro de diálogo y luego cancela el apagado funcionaría, pero también podría eliminarse desde el Administrador de tareas, lo que podría frustrar el propósito.
Michael Hampton
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.