AD 查询操作
關於LDAP的查詢:
1、查询种类:
A、(objectCategory=computer)
B、(objectCategory=group)
C、(objectCategory=user)
D、(&(objectCategory=person)(objectClass=user))
E、(objectcategory=contact)
2、语法基础
=---------------------(EQUALTO)等于
eg:(givenName=Wendy)
&-----------------------(logicalAND)和
eg:(&(givenName=Wendy)(l=Q13000000))
!-------------------------(logicalNOT)非
eg:(!givenName=Wendy)
*----------------------(wildcard)通配符
eg:(givenName=We*)
|---------------OR或者
eg:(|(l=Q1300)(l=Q1200))
eg:(&(givenName=Wen*
)(|(l=Q1300*)(l=Q1200*)))
◆查找被disable的user(拥有信箱)
(&(msExchUserAccountControl=2)(!msExchMasterAccountSID=*))
◆查询被disable的用户(所有)
(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))
◆查询有描述的计算机
(&(objectCategory=computer)(description=*))
◆查询有描述的组
(&(objCategory=group)(description=*))
◆查询所有的组-----开头为PCQ或者PSH
(&(objectCategory=group)(|(cn=PSH*)(cn=PCQ*)))
◆查询所属于群组的用户
(&(objectCategory=user)(|(memberOf=CN=Pin,OU=Pry,OU=Function,OU=Groups,DC=WEN,DC=COM)(memberOf=CN=PP,OU=Pry,OU=Function,OU=Groups,DC=WEN,DC=CORM)))
1、查询logonscript路径不是wendy.vbe的用户:
(&(!scriptPath=wendy.vbe)(objectCategory=user))
2、查詢被disabled的計算機
(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))
3、查詢時間戳早於2012年7月30日的電腦
(&(objectCategory=computer)(lastLogonTimestamp<=129880800000000000))
4、查询最后一次修改密码时间小于我们要查询的时间以及最后一次修改密码时间不为0的用户
(objectcategory=user)(objectclass=user)(!pwdlastset<=0)
(如果用户pwdlastset属性为0,说明用户属性中勾选了“下一次登录必须修改密码”的选项)
一、参考:细说LastLogonTimeStamp
LastLogonTimeStamp的值会在所有域控制器间复制。所以管理员只要从一个域控制器上就能得到用户上次登录的信息。
http://blogs.technet.com/b/apgceps/archive/2011/10/25/details-about-lastlogontimestamp.aspx
二、参考:LastLogonTimeStamp的值的计算方法
2012年7月30對應于129880800000000000
在活動目錄中存儲的時間戳和我們日常使用的時間戳是不一樣的,是從1601年1月1號開始所經過的100纳秒的个数,比如修改密码时间的属性lastpwdset,用户最后一次登录认证的属性lastlogon都是以这种形式来存在的
例如:我们要把2012年7月30日0时转换为活动目录时间戳
首先我们要计算从从1601年1月1号0时到2012年7月30日0时所经过的秒数。这个我们通过工具来计算
如上图,通过这个网站可以计算出他们之间所经过的秒数为:12988080000秒
之后再把单位转换为纳秒
12988080000 秒* 1000000000 /= 12988080000000000000 纳秒 |
最后转换为活动目录时间戳
12988080000000000000 纳秒/ 100 纳秒= 129880800000000000 |
好了,得到的一串数字就是活动目录时间戳,我们来验证一下是否正确,看是否能把它转换成标准时间,转换会标准时间就比较简单了,通过windows自带的命令就可以做到
看图中说明我们的时间戳已经转换过来了
PS:由于使用这个命令转换出来的时间为GMT时间格式,
他会自动根据我们当前计算机的时区再做一次计算,得出2013/6/18:00:00的时间,
因为我们转换前活动目录时间戳的时区就是我们当前的时区,所以可以忽略掉他自动转换的时区。