您好,我们有大约 400 多台服务器和一个域 + 3 个子域,每当我们更改密码 [出于安全原因] 时,帐户就会在我们解锁后立即被锁定。那么,有没有办法可以列出所有服务器或工作站,以列出用户帐户是否已登录或是否有断开连接或空闲会话,以便我们注销。
答案1
遵循粗略的概念验证可能会帮助您入门。想法是使用 Powershell 在事件日志中搜索给定 SID 的登录/注销事件。
(Get-ADUser <username>).SID
在 Powershell 中使用查找 SID- 在 powershell 中执行
$query = @"
<QueryList>
<Query Id="0" Path="System">
<Select Path="System">
*[EventData[Data[@Name='UserSid']='<SID>']]
and (*[System[(EventID='7001')]] or *[System[(EventID='7002')]])
</Select>
</Query>
</QueryList>
"@
('server1', 'server2) | % {Get-WinEvent -ComputerName $_ -Filterxml $query -MaxEvents 1}
xml 过滤器仅返回登录/注销事件。通过使用 仅选择 1 个事件,您将获得传递给该方法的所有带有登录或注销消息的MaxEvents
服务器的列表。登录消息是该 SID 仍处于登录状态的服务器。Get-WinEvent