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

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

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

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



답변

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

두 번째 최상의 솔루션 :

  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


답변

전적으로 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를 사용하여 찾을 수 있습니다.


답변

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 주소에 대해 세 번째 명령을 실행하십시오.


답변

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


답변