ldapsearch - 如何显示“lastLogonTimestamp”

时间:2017-11-14 11:29:04

标签: bash active-directory ldap ldap-query

我想在Active Directory中搜索没有x天/月登录的非活动用户。我有一个ldapsearch查询:

ldapsearch -h domain.test -p 389 -D "cn=login,ou=test,dc=domain,dc=test" -w "passwd" -s sub -b "ou=Test,dc=domain,dc=test" "(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))"

它为我提供了domain.test中具有所有属性的所有非活动用户的列表。

我想添加一个过滤器,用于搜索没有x天/月登录的用户,如果结果是sAMAccountNames列表(非活动用户和lastLogonTimestamp>例如3个月),那就太棒了。 我知道LastLogonTimestamp不是上次用户登录的实时时间,但在这种情况下它并不那么重要。

编辑:现在我只需要知道是否有办法在上面的ldapsearch查询输出中显示类似“lastLogonTimestamp”的属性?

ANSWER:没有为上面的ldapsearch查询的输出中的每个对象设置属性lastLogonTimestamp。我没注意到。所以grep展示了它:

ldapsearch -h domain.test -p 389 -D "cn=login,ou=test,dc=domain,dc=test" -w "passwd" -s sub -b "ou=Test,dc=domain,dc=test" "(&(objectCategory=person)(objectClass=user)(userAccountCont‌​rol:1.2.840.113556.1‌​.4.803:=2))" | grep -i lastlogontimestamp 

修改: 我虽然可以比较lastlogontimestamps - 但这不是因为lastlogontimestamp值不具有可比性。唯一的方法是首先转换为日期格式,然后比较以获得lastlogon例如的用户。在2017年6月1日之前。这里有一个问题:如何在bash中将windows lastlogontimestamp转换为日期?

如果这是正确的方法,请告诉我。

非常感谢任何建议。

0 个答案:

没有答案