인증 된 사용자 즉시 로그 오프 강제 (긴급 상황)


24

Active Directory에서 사용자가 로그인하지 못하게하려면 계정을 비활성화하거나 단순히 암호를 재설정하면됩니다. 그러나 이미 워크 스테이션에 로그인 한 사용자가 있고 가능한 빨리 리소스에 액세스하지 못하게하려면 어떻게해야합니까? 나는 근로자가 즉시 해고당하는 긴급 상황에 대해 말하고 그들이 즉시 네트워크에 갇히지 않으면 혼란에 빠질 위험이 있습니다.

며칠 전 비슷한 사례에 직면했습니다. 처음에는 어떻게 행동해야할지 모르겠습니다. 네트워크 공유에 대한 사용자 액세스를 방지하는 것은 쉽지만 충분하지 않습니다. 결국 Stop-Computer -ComputerName <name> -ForcePowerShell cmdlet을 사용하여 대상 컴퓨터를 끄고이 경우 문제가 해결되었습니다. 그러나 어떤 경우에는 차단해야하는 사용자가 여러 워크 스테이션이나 중요한 서비스를 제공하는 컴퓨터에 로그인하여 전원을 끌 수없는 경우와 같이 최선의 선택이 아닐 수도 있습니다.

모든 워크 스테이션에서 즉시 사용자 로그 오프를 강제로 수행 할 수있는 가장 좋은 솔루션은 무엇입니까? Active Directory에서도 가능합니까?


5
좋은 질문입니다. 답변을보고 싶습니다. 그러나 이와 같은 상황에서 해고 된 직원이 해고 소식을받는 시점부터 건물에서 호위 될 때까지 100 % HR 호위를받지 않습니까?
EEAA

그래, 확실해 그러나이 문제를 해결하는 데 관심이 있습니다 Active Directory-wise :)
Erathiel

경비원에게 전화해서 물리적으로 사람의 위치로 이동하여 제거해야합니까? 네트워크 외부에있는 경우 방화벽에서 차단합니까? powershell 스크립트를 사용하여 해당 사용자 계정으로 실행중인 모든 컴퓨터에서 프로세스를 종료하십시오.
Zoredache

답변:


20

최상의 해결책 : 경비원이 사람을 호위합니다.

두 번째 최상의 솔루션 :

  1. 먼저 qwinsta로 세션 번호를 확인하십시오. QWINSTA / server : computername
  2. 세션 ID를 기록하십시오.
  3. 그런 다음 LOGOFF sessionID / server : computername 명령을 사용하십시오.
C:\>qwinsta /?
Display information about Remote Desktop Sessions.

QUERY SESSION [sessionname | username | sessionid]
              [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER] [/VM]

  sessionname         Identifies the session named sessionname.
  username            Identifies the session with user username.
  sessionid           Identifies the session with ID sessionid.
  /SERVER:servername  The server to be queried (default is current).
  /MODE               Display current line settings.
  /FLOW               Display current flow control settings.
  /CONNECT            Display current connect settings.
  /COUNTER            Display current Remote Desktop Services counters information.
  /VM                 Display information about sessions within virtual machines.


C:\>logoff /?
Terminates a session.

LOGOFF [sessionname | sessionid] [/SERVER:servername] [/V] [/VM]

  sessionname         The name of the session.
  sessionid           The ID of the session.
  /SERVER:servername  Specifies the Remote Desktop server containing the user
                      session to log off (default is current).
  /V                  Displays information about the actions performed.
  /VM                 Logs off a session on server or within virtual machine. The unique ID of the session needs to be specified.

나는 그것을위한 기초 배치 스크립트를 썼습니다. 나는 unixtools경로뿐만 아니라 일부 가 필요합니다 psexec.

@ECHO OFF
:: Script to log a user off a remote machine
::
:: Param 1: The machine
:: Param 2: The username

psexec \\%1 qwinsta | grep %2 | sed 's/console//' | awk '{print $2}' > %tmp%\sessionid.txt
set /p sessionid=< %tmp%\sessionid.txt
del /q %tmp%\sessionid.txt
psexec \\%1 logoff %sessionid% /v

2
이 두 명령을 자동 배치 / powershell 파일로 결합 할 수 있습니까? 모든 세션을 로그 아웃하기 위해 빠른 스크립트를 실행하는 것이 매우 유용 할 수 있습니다.
EtherDragon

1
사용자가 연결된 모든 컴퓨터의 목록을 얻을 수 있습니까?
NothingsImossible

@NothingsIpsossible-내가 찾는 방법은 파일 서버를 보는 것입니다. 사용자가 프로파일을 서버로 리디렉션하면 열린 파일 공유 세션이 있는지 찾습니다.
ETL

@NothingsI 불가능 불가능 psloggedon
BE77Y

5

전적으로 AD 기반은 아니지만 원하는 것을 수행해야합니다.

계정 비활성화 또는 만료

import-module activedirectory
set-aduser -identity "username" -accountexperationdate "12:09 pm"

또는

set-aduser -identity "username" -enabled $false

그런 다음 컴퓨터에서 사용자를 로그 오프하십시오.

shutdown -m "\\computername" -l

사용자를 로그 오프하는 다른 방법은 관리 명령 프롬프트에서 내장 Windows 유틸리티를 사용하는 것입니다.

logoff 1 /SEVER:computername

원격 컴퓨터에서 세션 ID 1을 로그 오프합니다. 세션 ID를 모르는 경우 (1이 기본값 임) 원격 시스템에서 quser를 사용하여 찾을 수 있습니다.


1
그렇게하면 사용자를 로그 아웃하지 않고 시스템을 종료시킬 수 있습니다. 이것은 질문이었습니다.
slybloty

2
제발 내가 틀리지 말아라. 그러나 당신의 대답은 내가 원하지 않는 것입니다. 내 질문에 모든 것을 포함 시켰습니다 : 계정을 비활성화 / 만료하거나 암호를 변경해도 사용자 로그 오프가 발생하지는 않습니다. OP에 설명 된 경우에는 사용되지 않습니다.
Erathiel

3
shutdown기본적으로 명령이 실제로 종료하지 않지만, 사용자 로그 오프합니다 .
Michael Hampton

사용자를 로그 오프하는 다른 방법을 추가했습니다. 이것이 당신이 찾고있는 것과 더 유사한 지 알려주십시오. 편집 : ETL의 답변을 보지 못했기 때문에 펀치에 나를 때리기 위해 +1을주었습니다.
David V

3
제 업무에 대한 정책은 일반적으로 다음과 같습니다. 사람은 "회의"(종료)로 전화를 걸지만 회의 중에 계정이 비활성화되고 세션이 원격으로 로그 아웃됩니다 (데스크톱에는 모두 보안 된 VNC 서버가 설치됨).
Avery Payne

4

wmic를 사용하여 사용자 세션을 원격으로 잠글 수 있습니다.

1-먼저 사용자 비밀번호를 변경하십시오.

C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
  create "net user [user] [NewPassword]"

2-그런 다음 계정을 비활성화하십시오.

C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
  create "net user [user] /active:no"

3-그런 다음 사용자 세션 연결을 끊습니다.

C:\> wmic /node:[IPaddr] /user:[Admin] /password:[password] process call
  create "tsdiscon"

현재 사용자 세션을 풀지 않으므로 워크 스테이션을 잠금 해제 할 때 문으로 호송되기 전에 불쾌한 일을하려고했는지 확인할 수 있습니다.

모든 크레딧은 커맨드 라인 쿵푸 블로그에 있습니다. 거기에 미친 보안 / 법의학 관련 것들이 많이 있습니다!

업데이트 : 처음 두 단계는 로컬 사용자를 대상으로하며 활성 디렉토리 환경에서는 실제로 더 쉽습니다 .AD에서 계정을 비활성화하고 암호를 변경 한 다음 악의적 인 사용자 IP 주소에 대해 세 번째 명령을 실행하십시오.


불행히도이 명령 wmic..."tsdiscon" 은 XP에서만 작동합니다 . Vista +에서이 명령은 콘솔 세션의 연결을 끊을 수 없습니다.
나는

0

사용자 속성에서 로그온 시간을 모든 시간 동안 로그온 거부로 변경하십시오. 로그인 한 곳에서 즉시 로그 아웃합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.