Active directory 我需要从ldap中找出禁用的用户

Active directory 我需要从ldap中找出禁用的用户,active-directory,ldap,openldap,Active Directory,Ldap,Openldap,我正在尝试使用ldapsearch实用程序查明用户是否在ldap中被禁用,但到目前为止我一直没有成功。这就是我目前所得到的 ldapsearch -h hostname -D 'Service Account' -b 'basedn' sAMAccountName='disabled user' -w 'password' # extended LDIF # # LDAPv3 # base <basedn> with scope subtree # filter: sAMAccoun

我正在尝试使用ldapsearch实用程序查明用户是否在ldap中被禁用,但到目前为止我一直没有成功。这就是我目前所得到的

ldapsearch -h hostname -D 'Service Account' -b 'basedn' sAMAccountName='disabled user' -w 'password'
# extended LDIF
#
# LDAPv3
# base <basedn> with scope subtree
# filter: sAMAccountName=disabled user
# requesting: ALL
#

# search result
search: 2
result: 0 Success

# numResponses: 1
ldapsearch-h hostname-D'服务帐户'-b'basedn'sAMAccountName='disabled user'-w'密码'
#扩展LDIF
#
#LDAPv3
#带作用域子树的基
#筛选器:sAMAccountName=已禁用的用户
#请求:全部
#
#搜索结果
搜索:2
结果:0成功
#NUM响应:1
我甚至试过使用-llnsaccountlock它什么都不给我。对于用户来说,随机字符串也是一样的。 我需要找出我指定的用户是活动用户还是禁用用户,或者根本不是用户。我做错什么了吗?是否有其他实用程序可用于确定用户是否已禁用

您可以使用:


要查找用户帐户控制值为0x00000002的所有用户,您需要指定包含锁定信息的属性,不管它是什么。默认情况下不会返回它。我尝试了-LLL fcAccountStatus,但它不起作用。我尝试了ldapsearch-h hostname-D'Service Account'-b'basedn'sAMAccountName='disabled user'-w'password'(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))但是它给了我一个错误-bash:syntax error靠近意外标记“(”这与bash转义有关。请尝试使用引号(或双引号),例如ldapsearch-h hostname-D'Service Account'-b'basedn'sAMAccountName='disabled user'-w'password''(&(objectCategory=person)(objectClass=user)(useraccountcontrol)‌​ol:1.2.840.113556.1。‌​4.803:=2)“好的,单引号确实有效,谢谢,但我得到的只是这些信息#扩展LDIF##LDAPv3#带作用域子树的基#过滤器:sAMAccountName=禁用用户#请求:(&(objectCategory=person)(objectClass=user)(userAccountCont)‌​R‌​ol:1.2.840.113556‌​.1.‌​4.803:=2))##搜索结果搜索:2结果:0成功
(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=2))