我想在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)(userAccountControl:1.2.840.113556.1.4.803:=2))" | grep -i lastlogontimestamp
修改: 我虽然可以比较lastlogontimestamps - 但这不是因为lastlogontimestamp值不具有可比性。唯一的方法是首先转换为日期格式,然后比较以获得lastlogon例如的用户。在2017年6月1日之前。这里有一个问题:如何在bash中将windows lastlogontimestamp转换为日期?
如果这是正确的方法,请告诉我。
非常感谢任何建议。