
단일 특정 다중 사용자 컴퓨터에서 작업을 마친 후에는 사람들이 로그아웃되었는지 확인하고 싶습니다. 현재는 다음 사용자가 "사용자 전환"만 하고 계속 작업을 하게 되지만, 프로그램이 열려 있는 상태에서 동시에 많은 사용자가 로그온하게 되면 리소스가 소모되는 것 같습니다.
사용자가 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
"사용자 전환" 기능을 비활성화하는 방법을 찾고 싶습니다.이것도움이 될 수도 있습니다.