【问题标题】:Incorrect LastLogonTimeStamp Value of user in Active DirectoryActive Directory 中用户的 LastLogonTimeStamp 值不正确
【发布时间】:2016-02-05 00:15:46
【问题描述】:

我在 Active Directory 中使用用户的 LastLogonTimeStamp 属性来获取上次登录日期时间,值不一致,

还有其他人遇到过同样的问题吗?

我们可以信任 LastLogonTimeStamp 吗?

更新: 它只是一个域控制器

【问题讨论】:

  • 我发现,这是 LastLogonTimeStamp 的一个已知问题。
  • 我有一个解决办法。在我的网络应用程序中,我正在使用带有 LogonInteractive 选项的 LogonUser api 对用户进行身份验证。这反过来会更新特定域控制器中的“lastLogon”属性。我在每个 DC 中查询它,然后选择最新的一个。那是准确的。

标签: active-directory


【解决方案1】:

http://www.microsoft.com/technet/scriptcenter/topics/win2003/lastlogon.mspx

如果您有很多域控制器并且不需要最准确的结果,您只会使用 lastLogonTimeStamp。对于单个域控制器,请使用 lastLogon 属性。

【讨论】:

    【解决方案2】:

    设计上的 LastLogonTimeStamp 仅在用户登录并且当前值介于 9 到 14 天之间时才会更新。他们这样做是为了减少 AD 中的复制流量。

    这个blog posting说得好:

    需要注意的是 的预期目的 lastLogontimeStamp 属性帮助 识别非活动计算机和用户 帐户。 lastLogon 属性是 并非旨在提供实时 登录信息。默认情况下 设置到位 lastLogontimeStamp 将是 9-14 天 晚于当前日期。

    如果您想要用户真正的上次登录信息,您必须从域中的每个域控制器中提取 lastLogon 属性并使用最新的值。

    【讨论】:

      【解决方案3】:

      您的网络是否包含多个 DC(域控制器)?它们可能不同步,因为 LastLogonTimeStamp 将在用户实际登录的 DC 上更新,同步可能需要一些时间。

      马克

      【讨论】:

      • Marc,它只是一个域控制器。对于某些用户来说,它会延迟一两天。
      【解决方案4】:

      如果您计划拥有多个 DC,那么 LastLogonTimeStamp 可能不是一种可靠的方法来确定诸如帐户是否已“过时”之类的事情,因为该属性不会复制到许多其他 DC(大多数? ) 场景,具体取决于您的域功能级别。

      确定这一点的更好方法是查看“密码年龄”(通过 PasswordLastChanged 属性)。例如,如果有人在密码过期后一两周(或其他时间跨度,具体取决于您的特定环境)没有重置密码,那么您很有可能在那里有一个孤立的帐户。

      【讨论】:

      • 它将在一个 DC 上。我需要最后一次登录日期,我不认为我可以使用密码年龄。我不确定如何将其用于上次登录日期时间?
      【解决方案5】:

      您无法直接通过 lastlogon 或 lastlogontimestamp 获取用户的 True LastLogon 时间。您需要做一些自定义工作来获取最新的登录时间。

      上次登录

      您需要从所有域控制器查询 lastlogon 值并比较所有值,然后获得最高登录时间作为 True Last Logon

      LastLogonTimeStamp

      由于它是您只能从一个 DC 查询的可复制属性,但它不会给出准确的结果,它的精度约为 14 天,具体取决于属性 msDS-LogonTimeSyncInterval

      【讨论】:

        【解决方案6】:

        如果您想要用户真正的上次登录信息,您必须从域中的每个域控制器中提取 lastLogon 属性并使用最新的值。

        很遗憾,这并不完全准确。我使用了 lastlogon 属性,虽然它对于我测试过的大多数用户帐户来说都相当接近,但我遇到了许多返回 1600 年的日期,而那些接近的显示有时我肯定知道指定的用户甚至无法登录,例如,当我知道我在上午 8:15 登录时,我自己的 LastLogon 在上午 7:50 显示。

        许多管理员有时似乎希望使用这些信息来验证是否符合公司政策。不幸的是,微软似乎在设计上出于系统功能目的而忽视了这种意图。

        【讨论】:

        • 1601 中的日期仅表明它“未设置”。在这种情况下,该帐户在该 DC 上的 lastLogon 属性为“0”或 null。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 2011-12-23
        • 2016-08-12
        • 1970-01-01
        相关资源
        最近更新 更多