End*_*der 6 windows powershell ldap active-directory
我正在使用 lastLogonTimeStamp 跟踪用户上次登录时间,如下代码所示:
$Domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADSearch = New-Object System.DirectoryServices.DirectorySearcher
$ADSearch.SearchRoot ="LDAP://$Domain"
$ADSearch.SearchScope = "subtree"
$ADSearch.PageSize = 100
$ADSearch.Filter = "(objectClass=user)"
$properies = @("distinguishedName",
"sAMAccountName",
"mail",
"lastLogonTimeStamp")
foreach ($pro in $properies) {
$ADSearch.PropertiesToLoad.add($pro)
}
$userObjects = $ADSearch.FindAll()
foreach ($user in $userObjects) {
$logon = $user.Properties.Item("lastLogonTimeStamp")[0]
$lastLogon = [datetime]::fromfiletime($logon)
$lastLogon= $lastLogon.ToString("yyyy/MM/dd")
$lastLogon
}
Run Code Online (Sandbox Code Playgroud)
我到目前为止:
1601/01/01
1601/01/01
3/12/2012
1601/01/01
3/19/2015
Run Code Online (Sandbox Code Playgroud)
这不是我第一次对1601/01/01值感到非常困惑。而且我还阅读了有关此值的 MS 文档,对我来说这是无稽之谈,它没有太多描述它的目的。不仅lastLogonTimeStamp有这个输出,许多其他属性也返回了这个。所以我的问题是:
小智 6
“上次登录时间戳”和 Windows 2016 域控制器存在一个已知错误。
LDAP 简单绑定不会像以前的操作系统 ( 2012, 2008 ) 那样更新上次登录时间戳。当心。
我在这方面花了 2 个月的时间与 MS。最终会发布一个补丁……但目前还没有修复。
| 归档时间: |
|
| 查看次数: |
9095 次 |
| 最近记录: |