繁体   English   中英

1601 / 01/01的lastLogonTimeStamp属性

[英]1601/01/01 of lastLogonTimeStamp attribute

我正在使用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
}

我到目前为止:

1601/01/01
1601/01/01
3/12/2012
1601/01/01
3/19/2015

这不是我第一次对1601/01/01价值感到困惑。 我还阅读了有关此值的MS文档,对我来说这是无稽之谈,它没有描述它的目的是什么。 不仅lastLogonTimeStamp具有此输出,许多其他属性也返回此输出。 所以我的问题是:

  1. 这个价值的目的是什么?
  2. 在这种情况下,我应该返回什么作为适当的人类可读输出? (此属性对此用户无效?)

“最后登录时间戳”和Windows 2016域控制器存在已知错误。

LDAP简单绑定不会像以前的操作系统(2012年,2008年)那样更新上次登录时间戳。 小心。

我花了两个月的时间在MS上。 补丁最终会被释放......但是现在还没有修复。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM