Windows 컴퓨터에서 사용자를 자동으로 로그 아웃하려면 어떻게합니까?


9

사람들이 단일의 특정 다중 사용자 컴퓨터에서 작업을 마치면 로그 아웃되도록하겠습니다. 현재 다음 사용자는 "사용자 전환"만하고 작업을 계속하지만 동시에 많은 사용자가 프로그램을 연 상태에서 로그온하면 리소스를 사용하는 것으로 보입니다.

24 시간 동안 활동하지 않으면 컴퓨터에서 사용자를 자동으로 로그 아웃 할 수 있습니까?


또는 자정에 현재 사용자를 제외한 모든 사용자를 로그 아웃 할 수 있습니까?

컴퓨터가 Windows 도메인 네트워크에 있지만 자동 로그 아웃이 단일 컴퓨터에서만 작동하기를 원하지만 네트워크 관리자가 아닙니다.

.


1
이것이 Windows 도메인 네트워크입니까?
Moab

@Moab : 컴퓨터가 Windows 도메인 네트워크에 있지만 자동 로그 아웃이 단일 컴퓨터에서만 작동하기를 원하지만 네트워크 관리자가 아닙니다.
Jonas

@ Jonas, 단어를 선택하면 둘 이상의 PC처럼 들리게됩니다.이 새로운 정보를 포함하도록 원본 게시물을 편집 할 수 있습니다.
Moab

@ 모압 : 나는 질문을 명확히하려고 노력했다. 더 낫습니까?
Jonas

지금,보세요.
Moab

답변:


6

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

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

이 스크립트는 query 명령 을 사용하여 "disc"구를 검색하여 연결이 끊어진 사용자를 찾은 다음 로그 아웃하여 작동합니다.

스크립트를 서비스로 계속 실행하고 특정 시간 동안 연결이 끊어 졌거나 비활성화 된 사용자를 로그 아웃하려면 대신 다음을 사용하십시오.

@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

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

찾을 여기 .


@ eMansipater : 이것이 무엇을하고 24 시간을 어디에서 설정할 수 있는지 설명해 주시겠습니까?
Jonas

1
가장 좋은 해결책은 빠른 사용자 전환을 비활성화하는 것입니다. 이렇게하면 새 사용자가 계정에 로그인하기 전에 강제로 로그 오프됩니다.
Moab

1
@Moab 빠른 사용자 전환을 비활성화하면 이전 사용자가 화면을 잠근 경우 비 관리자가 로그인 할 수 없습니다. @Jonas 현명한 질문-괄호 안의 비트는 support.microsoft.com/kb/186592의 query 명령을 사용하여 "disc"구를 검색하여 연결을 끊은 사용자를 찾은 다음 로그 아웃하는 것입니다. 선택 명령은 2 분마다 작업을 수행하기 위해 대기 중입니다. 이 스크립트는 다른 사용자가 이미 로그인 한 경우에만 사용자를 로그 아웃해야하므로 24 시간 옵션이 필요하지 않습니다.
eMansipater

1
@Jonas 배치 파일은 "%% a"를 사용하지만 명령 줄에서 동일한 작업을 수행하려면 대신 "% a"를 입력하면 디버깅에 도움이됩니다. 스크립트를 사용하기에 편리한 Windows 시스템이 없으므로 미묘한 문제가있을 수 있습니다. "GTR 32 (logoff %% b)"명령을 따옴표없이 "echo logoff %% b"로 변경하거나 따옴표없이 "echo logoff % b"를 입력하면 입력 할 수 있습니다. 사용자가 로그 오프하려고합니다. 쓰레기를 인쇄하거나 아무것도 인쇄하지 않으면 스크립트가 잘못 표시됩니다. "쿼리"출력 형식을 모르는 것이 마음에 든다.
eMansipater

1
@Jonas 쿼리 명령 의 출력을 다시 확인할 기회가 있었고 스크립트의 해당 부분은 사용자가 일정 시간 동안 유휴 상태 인 경우에만 로그 아웃이 발생하도록했습니다. '%% d GTR 32 인 경우'는 토큰 %% d이 (가) 32보다 큰 경우 로그 오프 명령을 실행하는 것을 의미합니다. 원격 데스크톱 등의 사용에 따라 "유휴"토큰이 두 곳에 나타날 수 있습니다. 두 시나리오를 모두 확인합니다. 수정 된 버전은 시간이 오래 걸리더라도 유휴 사용자 를 로그 아웃 합니다 . Windows 컴퓨터에 연결할 수 있으면 구문을 확인할 수 있습니다.
eMansipater

1
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 값이 분이 아닌 한 시간이되도록합니다.


0

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


실제로 "사용자 전환"기능이 마음에 듭니다. 이런 식으로, 긴 계산을 실행하는 누군가가 다른 사용자도 컴퓨터를 사용하는 것을 차단하지 않습니다.
Jonas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.