在Active Directory中,如果您想阻止用户login,您可以禁用他们的帐户,或者简单地重置他们的密码。 但是,如果您有一个已经login到工作站的用户,并且需要尽可能快地阻止他们访问任何资源,那么您怎么做? 我提到一个紧急情况,一名工作人员立即被解雇,如果他们没有立即被关在networking外面,就有可能造成严重破坏。
前几天我也遇到过类似的情况。 起初我不确定如何行事。 防止用户访问networking共享很容易,但这还不够。 最终,我使用Stop-Computer -ComputerName <name> -Force
PowerShell cmdlet将目标计算机closures,在我的情况下,这解决了问题。 但是,在某些情况下,这可能不是最好的select,例如,如果您需要中断的用户在多个工作站或提供重要服务的计算机上login,而您无法将其closures。
远程强制所有工作站立即注销用户的最佳解决scheme是什么? 这甚至可以在Active Directory中吗?
最好的解决scheme:一名保安护送出去的人…
次优解决scheme:
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
另一种注销用户的方法是从pipe理命令提示符使用内置的Windows实用程序
logoff 1 /SEVER:computername
这将从远程计算机注销会话ID 1。 如果您不知道会话标识(默认为1),则可以使用quser对远程计算机进行查找。
您可以用wmic远程locking用户的会话:
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地址运行第三个命令。