Powershell Active Directory用户登录和注销会话历史记录
我正在寻找使用PowerShell生成active directory域用户登录和注销会话历史记录的脚本。下面是我尝试过的脚本。这些仅显示上次登录的会话 脚本:Powershell Active Directory用户登录和注销会话历史记录,powershell,Powershell,我正在寻找使用PowerShell生成active directory域用户登录和注销会话历史记录的脚本。下面是我尝试过的脚本。这些仅显示上次登录的会话 脚本: $searcher=新对象DirectoryServices.DirectorySearcher([adsi]“”) $searcher.filter=“(objectclass=user)” $users=$searcher.findall() Foreach($users中的用户) { if($user.properties.ite
$searcher=新对象DirectoryServices.DirectorySearcher([adsi]“”)
$searcher.filter=“(objectclass=user)”
$users=$searcher.findall()
Foreach($users中的用户)
{
if($user.properties.item(“lastLogon”)-ne 0)
{
$a=[datetime]::FromFileTime([int64]::Parse($user.properties.item(“lastLogon”))
“$($user.properties.item(`name`'))$a”
}
}
输出:
PS C:\Windows\system32>C:\Users\Administrator\Desktop\working\lastlogonworked.ps1管理员2013年10月17日13:11:31
演示版2013年10月17日13:10:54
用户0 2013年10月17日07:07:07
用户1 2013年10月17日06:29:27
用户2 2013年10月17日08:39:05
用户4 2013年10月17日08:41:36
用户5 2013年10月17日09:38:07
CPU054 10/17/2013 13:11:53
请有人帮助我获取所有用户的登录和注销历史记录。您将无法从AD获取该历史记录。您需要搜索DCs上的安全事件日志以查找登录/注销事件。您将无法从AD获取该历史记录。您需要搜索DCs上的安全事件日志以查找登录/注销事件。I通过google运行这个线程,查找如何记录用户登录,我发现了一个有趣的、可能更简单的方法。我决不是一个广告专家,这一点我的前任已经做到了。我想知道是怎么做到的
$searcher = New-Object DirectoryServices.DirectorySearcher([adsi]"")
$searcher.filter = "(objectclass=user)"
$users = $searcher.findall()
Out-File C:\logonfile.txt
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" >> c:\logonfile.CSV
}
}
- 设置组策略以在登录时运行脚本。在本例中,一个名为“Logon.cmd”的脚本
- 创建一个小批量文件,并将其(在我的示例中)放在此处: C:\Windows\SYSVOL\domain\Policies{81D…[SNIP}…C7}\User\Scripts\Logon
- 该脚本的内容只有一行: 回显登录,%COMPUTERNAME%,%USERNAME%,%DATE%,%TIME%>>\SERVER\SHARE\%USERNAME%.csv
现在,这为您提供了一个充满文件的共享,每个用户一个,而不是将事件直接记录到DC上的Windows安全日志。这可能会有问题(或恼人),或者可能会导致不懂计算机(人力资源和管理?)人们很容易获得人员跟踪信息。我通过谷歌浏览了这条线索,寻找如何记录用户登录,我发现了一种有趣的、可能更简单的方法。我绝不是广告专家,这一点我的前任已经做好了。我试图弄清楚这是如何做到的
- 设置组策略以在登录时运行脚本。在本例中,将使用名为“logon.cmd”的脚本
- 创建一个小批量文件,并将其(在我的示例中)放在此处: C:\Windows\SYSVOL\domain\Policies{81D…[SNIP}…C7}\User\Scripts\Logon
- 该脚本的内容只有一行: 回显登录,%COMPUTERNAME%,%USERNAME%,%DATE%,%TIME%>>\SERVER\SHARE\%USERNAME%.csv
现在,这为您提供了一个充满文件的共享,每个用户一个,而不是将事件直接记录到DC上的Windows安全日志。这可能会有问题(或恼人),或者可能会导致不懂计算机(人力资源和管理?)人员可以轻松访问人员跟踪信息。假设DCs记录此信息,如我所回忆的,传统上是0级错误事件的默认值。假设DCs记录此信息,如我所回忆的,传统上是0级错误事件的默认值。此方法的问题是用户可能会弄乱它。O因此,这不是一个坏概念。这种方法的问题是用户可能会弄乱它。否则,这不是一个坏概念