我必须查询大约 10,000 个用户的属性。我有一个适用于单个用户的 ldapsearch 查询。以下是相关部分,我在其中搜索objectGUID
用户的属性abc123
:
ldapsearch -h somehost.com -D "CN=valid_user,DC=valid_everything" -q -b "OU=valid_ou,DC=valid_dc" -s sub "cn=abc123" -L objectGUID
我想将所有查询放在一个文件中,然后使用该-f myqueries.txt
选项。由于此查询将通过 SSL 执行,因此我想避免运行 10k 单独的 ldapsearch 时遇到的 10k SSL 协商。
我尝试使用如下文件:
(cn=abc123)
(cn=lmn456)
(cn=xyz789)
使用这个修改后的命令行:
ldapsearch -v -h somehost.com -D "CN=valid_user,DC=valid_everything" -q -b "OU=valid_ou,DC=valid_dc" -s sub -f myqueries.txt -L objectGUID
但我总是收到Bad search filter
错误。
我无法确定这是哪个版本的 ldapsearch。它运行在自定义 Linux 发行版上。
如何使用该-f
选项让 ldapsearch 使用从文件读取的查询?
答案1
文件看起来应该像这样:
abc123
lmn456
xyz789
并命令如下:
ldapsearch -v -h somehost.com -D "CN=valid_user,DC=valid_everything" -q -b "OU=valid_ou,DC=valid_dc" -s sub -f myqueries.txt "(cn=%s)" -L objectGUID
-f 之后给出的文件只能保存查询的参数,而不能保存查询本身。