尝试过滤AD群组。我有这个有效:
SELECT name, distinguishedName
FROM OPENQUERY( ADSI,'SELECT name, distinguishedName
FROM ''LDAP://hhsc.org/DC=hhsc, DC=org''
WHERE objectCategory = ''group'' AND proxyAddresses=''*'' ')
ORDER BY name
它有效,但我们在安全组中有电子邮件地址,所以我正在尝试使用此过滤器:
SELECT name, distinguishedName
FROM OPENQUERY( ADSI,'SELECT name, distinguishedName
FROM ''LDAP://hhsc.org/DC=hhsc, DC=org''
WHERE objectCategory=''group'' AND groupType:1.2.840.113556.1.4.803:=''2147483648'' ')
ORDER BY name
它一直在扔:
Msg 7321,Level 16,State 2,Line 1 准备查询“SELECT name,distinguishedName”时发生错误 来自'LDAP://hhsc.org/DC=hhsc,DC = org' WHERE objectCategory ='group'& groupType:1.2.840.113556.1.4.803:='2147483648'“用于针对链接服务器”ADSI“的OLE DB提供程序”ADsDSOObject“执行。
我怀疑它是groupType中的语法,但它让我受到打击。
仅供参考,标识符或您为groupType调用的任何内容都适用于CFLDAP查询,该查询仅提供我的分发列表。
现在已经开始工作了一段时间,但我没有取得任何进展。
提前致谢。
答案 0 :(得分:0)
如果它可以帮助一个菜鸟,这有效:
SELECT name, distinguishedName
FROM OPENQUERY( ADSI,
'<LDAP://domainName.com/DC=????,DC=????>;
(&(objectClass=group)(!(groupType:1.2.840.113556.1.4.803:=2147483648)));
name, distinguishedName;
subtree')
ORDER BY name
请注意,在我的情况下,我发现如果我没有放入.com,.org或其他任何域名,它就行不通。另外,在我的情况下,我从AD根运行查询(我想这就是你所说的)DC = ????,DC = ????你当然可以将OU或CN放在前面。
服务器是SQL 2008 R2 64位,Active Directory是Server 2003 32位。 (是的,我们正在升级。)
接下来的头痛!!!