Windows 시스템에서 사용자를 자동으로 로그아웃하려면 어떻게 해야 합니까?

Windows 시스템에서 사용자를 자동으로 로그아웃하려면 어떻게 해야 합니까?

단일 특정 다중 사용자 컴퓨터에서 작업을 마친 후에는 사람들이 로그아웃되었는지 확인하고 싶습니다. 현재는 다음 사용자가 "사용자 전환"만 하고 계속 작업을 하게 되지만, 프로그램이 열려 있는 상태에서 동시에 많은 사용자가 로그온하게 되면 리소스가 소모되는 것 같습니다.

사용자가 24시간 동안 활성 상태가 아닌 경우 자동으로 컴퓨터에서 로그아웃할 수 있습니까?


아니면 현재 사용자를 제외한 모든 사람이 자정에 로그아웃할 수 있나요?

컴퓨터가 Windows 도메인 네트워크에 있습니다. 하지만 자동 로그아웃이 단일 컴퓨터에서만 작동하도록 하고 싶습니다(그리고 저는 네트워크 관리자가 아닙니다).

.

답변1

현재 사용자는 연결된 상태에서 연결이 끊긴 사용자를 로그아웃하려면 다음 스크립트 코드를 "LogOffUsers.cmd"와 같은 .cmd 파일에 복사한 다음 자정에 서비스로 실행합니다.

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

스크립트는 다음을 사용하여 작동합니다.쿼리 명령연결이 끊긴 사용자를 찾으려면 "디스크"라는 문구를 검색한 후 로그아웃하세요.

대신 스크립트를 서비스로 지속적으로 실행하고 특정 기간 동안 연결이 끊기거나 비활성 상태인 사용자를 로그아웃하려면 대신 다음을 사용합니다.

@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

이 스크립트는 동일한 쿼리 명령을 사용하지만 결과의 "IDLE TIME" 부분을 추가로 확인하여 유휴 시간이 32( "GTR 32")보다 큰 경우 사용자를 로그오프합니다. "IDLE TIME" 토큰이 약간 다른 두 위치에 나타날 수 있기 때문에 해당 문구가 두 번 나타납니다. 그런 다음 "choice"로 시작하는 줄은 처음으로 반복하여 작업을 다시 수행하기 전에 2분을 기다립니다. 필요에 따라 "32" 값을 늘리거나 줄일 수 있습니다.

설립하다여기.

답변2

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))

위의 내용은 유휴 시간 동안만 작동하므로 연결이 끊긴 세션에서 로그아웃하기 전에 몇 시간의 유휴 시간을 사용하려면 약간 수정해야 합니다.

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

23을 변경하여 시간을 조정하면 위의 내용은 24시간 이상의 유휴 시간에 작동합니다. %%h 2012는 %%d 값이 분 값이 아닌 시간임을 확인합니다.

답변3

"사용자 전환" 기능을 비활성화하는 방법을 찾고 싶습니다.이것도움이 될 수도 있습니다.

관련 정보