¿Cómo puedo cerrar sesión automáticamente para los usuarios de una máquina con Windows?

¿Cómo puedo cerrar sesión automáticamente para los usuarios de una máquina con Windows?

Me gustaría asegurarme de que las personas cierren sesión una vez que hayan terminado de trabajar en una única máquina multiusuario específica. Actualmente, el siguiente usuario simplemente "cambiará de usuario" y seguirá trabajando, pero tener muchos usuarios conectados al mismo tiempo con programas abiertos parece consumir recursos.

¿Es posible cerrar la sesión automáticamente de los usuarios de una máquina si no han estado activos durante 24 horas?


Alternativamente, ¿es posible cerrar la sesión de todos menos del usuario actual a medianoche?

La computadora está en una red de dominio de Windows, aunque solo quiero que el cierre de sesión automático funcione para una sola máquina (y no soy el administrador de la red).

.

Respuesta1

Para cerrar la sesión de los usuarios desconectados y dejar al usuario actual conectado, copie el siguiente código de secuencia de comandos en un archivo .cmd como "LogOffUsers.cmd" y luego ejecútelo como un servicio a medianoche:

@echo off
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do logoff %%b

El script funciona usando elcomando de consultapara encontrar usuarios que están desconectados buscando la frase "disco" y luego desconectándolos.

Si quisiera que el script se ejecutara continuamente como un servicio, desconectando a los usuarios cuando hubieran estado desconectados/inactivos durante un cierto período de tiempo, usaría en su lugar:

@echo off
:Top
for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else %%e GTR 32 (logoff %%b)
choice /T 120 /C 1 /D 1 /N
goto top

Este script utiliza el mismo comando de consulta, pero además verifica la parte "TIEMPO DE INACTIVIDAD" de los resultados, desconectando al usuario si el tiempo de inactividad es mayor que 32 ("GTR 32"). Esa frase aparece dos veces porque el token "TIEMPO DE INACTIVIDAD" puede aparecer en dos posiciones ligeramente diferentes. Luego, la línea que comienza con "elección" espera 2 minutos antes de realizar la operación nuevamente volviendo al principio. Puede aumentar o disminuir el valor "32" según sus necesidades.

Encontróaquí.

Respuesta2

for /f "tokens=1-7 delims=,: " %%a in ('query user ^| find /i "disc"') do if %%d GTR 32 (logoff %%b) else (if %%e GTR 35 (logoff %%b))

Tenga en cuenta que lo anterior solo funcionará durante los minutos de inactividad; debe realizar una ligera modificación si desea utilizar horas de tiempo de inactividad antes de cerrar sesión en la sesión desconectada.

for /f "tokens=1-8 delims=,:/ " %%a in ('query user ^| find /i "disc"') do if %%d GTR 23 (if %%h GTR 2012 (logoff %%b))

Modifique el 23 para ajustar las horas, lo anterior funcionará en 24 horas o más de tiempo de inactividad. El %%h 2012 garantiza que el valor %%d sea una hora y no un valor de minutos.

Respuesta3

Buscaría una manera de desactivar la función "Cambiar de usuario".Estepodría ayudar.

información relacionada