细说LastLogonTimeStamp
微软在Windows Server 2003中引入了LastLogonTimeStamp属性。管理员们可以利用这个属性查看用户或者计算机最近是否登录过域。根据这些信息,管理员可以对长时间没有登录的账户采取相应的措施。
有人就会问了,不是有LastLogon这个属性吗,为什么还要引入LastLogonTimeStamp这个属性呢?这个问题问得好,那么我先来解释一下这两个属性的区别吧。
LastLogon是记录某个账户上一次在该域控制器认证的时间。该属性是不会在域控制器之间复制的。所以,要是以前需要确定账户最后一次登录域的时间,必须查看所有域控制器上的LastLogon,最大的那个值就代表了账户最后一次登录域的时间。LastLogon只会记录交互式登录,Kerberos验证的用户。
LastLogonTimeStamp的值会在所有域控制器间复制。所以管理员只要从一个域控制器上就能得到用户上次登录的信息。不过,LastLogonTimeStamp的值并不一定代表真实的最后一次登录域的时间。它是根据一个更新间隔来更新的(注意:要启用这个属性,域功能级别必须是Windows Server 2003喔)。LastLogonTimeStamp会记录交互式登录,Kerberos和NTLM验证的用户。
这时候有人又会问了,LastLogonTimeStamp既然不一定代表真实的最后一次登录域的时间,那么干嘛要引入呢?作者也有过类似的疑问。不过后面想想,觉得也合情合理。因为管理员利用该值对长时间没有登录的账号进行管理,那么该值只要能反映出账号长时间没有登录这个信息就好了。所以,在合适的更新间隔情况下,LastLogonTimeStamp就能反映出长时间没有登录这个信息,同时减少了AD复制流量,减轻了网络负担,何乐而不为呢?
好吧,你肯定又想知道这个更新间隔是怎么回事了。待我慢慢道来。
基本更新间隔是由msDS-LogonTimeSyncInterval这个属性定义的。默认是14天。该基本更新间隔可以在域的属性中设置,范围为1到100,000天。同时还有一个窗口(Window)以及一个随机参数(Parameter)用来调节整个更新间隔,避免LastLogonTimeStamp的值在同一个时间更新。窗口的默认值为5天,随机参数为一个百分比。真正的更新间隔Actual_Interval计算公式如下:
Actual_Interval = msDS-LogonTimeSyncInterval – Window * Parameter
举例说明:假如一个用户的LastLogonTimeStamp为2011/09/01,该用户在2011/09/10再次登录域。msDS-LogonTimeSyncInterval为14,Window为5,Parameter为80%。所以真正的更新间隔Actual_Interval为14 – 5 * 0.8 = 10。这时候由于没有满足更新条件,所以LastLogonTimeStamp不更新。请注意,用户登录后,在提供认证服务的域控制器上,LastLogon更新为2011/09/10。假如该用户在2011/09/11再次登录,这时候LastLogonTimeStamp就会更新为2011/09/11,并在域控制器之间进行复制。
刚好在作者的虚机里有这样的例子,那么我们根据图来看看这个LastLogonTimeStamp的更新吧。为了在Active Directory Users and Computer中的账户属性中看到这个属性,作者安装了AcctInfo2.dll。作者的虚机环境:两台域控制器在线(系统为Windows Server 2003 SP1),win2003AD和win2k3DC2;一台客户端win2k3ClientXP(系统为Windows XP)。
如下图XPClient用户登录前,在Win2003AD机器上,LastLogonTimeStamp为2011/08/31,而LastLogon为2011/09/13,这个间隔已经超过了更新间隔,所以假如XPClient登录,LastLogonTimeStamp必然会更新。

XPClient从win2k3ClientXP客户端登录之后,在Win2003AD机器上的LastLogonTimeStamp已经改变,如下图XPClient用户登录后所示。

细心的读者你肯定已经发现问题了吧,对的,两个图的LastLogon是一样的,这是为什么呢?原因就是,当前环境中有两台域控制器,而用户登录时联系的域控制器不是Win2003AD而是Win2k3DC2,所以LastLogon最新的数据会出现在Win2k3DC2上,如下图Win2k3DC2上XPClient信息。从这个图也可以看出,LastLogonTimeStamp已经通过AD复制同步了所有域控制器上的数据。

好了,今天的分享就到这里吧,相信通过上面详细的介绍之后,大家已经对LastLogonTimeStamp很了解了吧。
谢谢,
屈贝伟 | 企业平台支持部AD技术工程师 | 微软亚太区全球技术支持中心
本博文仅供参考,微软公司对其内容不作任何责任担保或权利赋予。
细说LastLogonTimeStamp的更多相关文章
- 匹夫细说C#:庖丁解牛迭代器,那些藏在幕后的秘密
0x00 前言 在匹夫的上一篇文章<匹夫细说C#:不是“栈类型”的值类型,从生命周期聊存储位置>的最后,匹夫以总结和后记的方式涉及到一部分迭代器的知识.但是觉得还是不够过瘾,很多需要说清楚 ...
- 细说WebSocket - Node篇
在上一篇提高到了 web 通信的各种方式,包括 轮询.长连接 以及各种 HTML5 中提到的手段.本文将详细描述 WebSocket协议 在 web通讯 中的实现. 一.WebSocket 协议 1. ...
- 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
0x00 前言 通过上一篇博客<匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的>的内容,我们实现了使用委托来构建我们自己的消息系统的过程.但是在日常的开发中,仍然有很多开发者因为 ...
- 细说Java主流日志工具库
概述 在项目开发中,为了跟踪代码的运行情况,常常要使用日志来记录信息. 在Java世界,有很多的日志工具库来实现日志功能,避免了我们重复造轮子. 我们先来逐一了解一下主流日志工具. java.util ...
- 细说 Form (表单)
细说 Form (表单) Form(表单)对于每个WEB开发人员来说,应该是再熟悉不过的东西了,可它却是页面与WEB服务器交互过程中最重要的信息来源. 虽然Asp.net WebForms框架为了帮助 ...
- 细说ASP.NET Forms身份认证
阅读目录 开始 ASP.NET身份认证基础 ASP.NET身份认证过程 如何实现登录与注销 保护受限制的页面 登录页不能正常显示的问题 认识Forms身份认证 理解Forms身份认证 实现自定义的身份 ...
- 细说CSS选择器
众所周知,CSS的一个核心特征就是能向文档中的一组元素类型应用某些规则.每个规则都有两个基本部分:选择器(selector)和声明块(declaration block).下图显示了规则的各个部分. ...
- [转]细说Redis监控和告警
原文 https://zhuoroger.github.io/2016/08/20/redis-monitor-and-alarm/? 对于任何应用服务和组件,都需要一套完善可靠谱监控方案. 尤其r ...
- 细说.NET 中的多线程 (一 概念)
为什么使用多线程 使用户界面能够随时相应用户输入 当某个应用程序在进行大量运算时候,为了保证应用程序能够随时相应客户的输入,这个时候我们往往需要让大量运算和相应用户输入这两个行为在不同的线程中进行. ...
随机推荐
- block引发的陷阱
block在项目的开发中使用时非常频繁的,苹果官方也极力推荐使用block.其实,究其本质,block就是指向结构体的指针(可利用运行时机制查看底层生成的c代码).然而在使用block时会存在很多陷阱 ...
- [Java基础] SequenceInputStream输入合并流
转载: http://blog.csdn.net/xuefeng1009/article/details/6955707 public SequenceInputStream(Enumeration& ...
- onItemClick 参数解释
X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item.如果你点了b这个item.如下:public void onItemClick (AdapterV ...
- linux 远程 windows 命令:rdesktop vs windows mstsc
[root@bass tmp]# which rdesktop /usr/bin/rdesktop [root@bass tmp]# rpm -qf /usr/bin/rdesktop rdeskto ...
- UVa 11437:Triangle Fun(计算几何综合应用,求直线交点,向量运算,求三角形面积)
Problem ATriangle Fun Input: Standard Input Output: Standard Output In the picture below you can see ...
- [转]notepad++各种插件
http://www.crifan.com/files/doc/docbook/rec_soft_npp/release/htmls/npp_common_plugins.html
- 前端JSON使用总结
JSON: JavaScript Object Notation(JavaScript 对象表示法)的简称. 1. 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaS ...
- ural 1157. Young Tiler
1157. Young Tiler Time limit: 1.0 secondMemory limit: 64 MB One young boy had many-many identical sq ...
- BZOJ3322 : [Scoi2013]摩托车交易
求出最大生成树,则两点间的最大容量为树上两点间的边权的最小值. 设$lim[i]$表示第$i$个订单的城市允许携带的黄金上限,则 $lim[i]=\min(lim[i+1],a[i]和a[i+1]点间 ...
- BZOJ1829 : [Usaco2010 Mar]starc星际争霸
设出$x,y,z$三个未知量分别表示三种单位的战斗力. 那么各种不等式都可以表示成$ax+by+cz\geq 0$的形式. 注意到$z>0$,那么两边都除以$z$得到$ax+by+c\geq 0 ...