Active Directory에서 사용자가 로그인하지 못하게하려면 계정을 비활성화하거나 단순히 암호를 재설정하면됩니다. 그러나 이미 워크 스테이션에 로그인 한 사용자가 있고 가능한 빨리 리소스에 액세스하지 못하게하려면 어떻게해야합니까? 나는 근로자가 즉시 해고당하는 긴급 상황에 대해 말하고 그들이 즉시 네트워크에 갇히지 않으면 혼란에 빠질 위험이 있습니다.
며칠 전 비슷한 사례에 직면했습니다. 처음에는 어떻게 행동해야할지 모르겠습니다. 네트워크 공유에 대한 사용자 액세스를 방지하는 것은 쉽지만 충분하지 않습니다. 결국 Stop-Computer -ComputerName <name> -Force
PowerShell cmdlet을 사용하여 대상 컴퓨터를 끄고이 경우 문제가 해결되었습니다. 그러나 어떤 경우에는 차단해야하는 사용자가 여러 워크 스테이션이나 중요한 서비스를 제공하는 컴퓨터에 로그인하여 전원을 끌 수없는 경우와 같이 최선의 선택이 아닐 수도 있습니다.
모든 워크 스테이션에서 즉시 사용자 로그 오프를 강제로 수행 할 수있는 가장 좋은 솔루션은 무엇입니까? Active Directory에서도 가능합니까?
답변
최상의 해결책 : 경비원이 사람을 호위합니다.
두 번째 최상의 솔루션 :
- 먼저 qwinsta로 세션 번호를 확인하십시오. QWINSTA / server : computername
- 세션 ID를 기록하십시오.
- 그런 다음 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 주소에 대해 세 번째 명령을 실행하십시오.
답변
사용자 속성에서 로그온 시간을 모든 시간 동안 로그온 거부로 변경하십시오. 로그인 한 곳에서 즉시 로그 아웃합니다.