Windows 2008 Active Directory - 如何获取域中登录用户的列表?

Windows 2008 Active Directory - 如何获取域中登录用户的列表?

我需要一个能够定期报告登录到 Windows 2008 AD 服务器控制的域的用户的程序/工具。无需定期检查的解决方案也可以,因为运行计划中的任务很容易。此外,我更喜欢一些命令行工具,这样我就可以编写一个脚本来包装它的输出并将其发送到另一台机器。

PS:我只对内置或免费工具感兴趣。

多谢。

答案1

Active Directory 域不维护“会话状态”,它只是一个目录,您无法检索已登录用户的列表。

您可以获取每个用户的最后登录日期,但需要一个脚本来检查域中的每个域控制器(脚本链接)。

答案2

您可以在登录脚本中创建一行来生成文件吗?

就像是?

网络时间>> \server\logonlogs\%用户名%.txt

然后在注销脚本中 del %username%.txt

答案3

我有一个登录/注销脚本,它使用用户名 - 日期/时间修改 AD 中计算机对象的描述属性。

答案4

PowerShell 脚本

$searcher = New-Object DirectoryServices.DirectorySearcher([adsi]"") 
$searcher.filter = "(objectclass=user)" 
$users = $searcher.findall() 

Foreach($user in $users) 
{ 
 if($user.properties.item("lastLogon") -ne 0) 
  { 
   $a = [datetime]::FromFileTime([int64]::Parse($user.properties.item("lastLogon"))) 
   "$($user.properties.item(`"name`")) $a" 
  } 
}

相关内容