Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有Active Directory和嵌套组/用户的SQL_Sql_Sql Server 2008 R2_Active Directory_Openquery - Fatal编程技术网

具有Active Directory和嵌套组/用户的SQL

具有Active Directory和嵌套组/用户的SQL,sql,sql-server-2008-r2,active-directory,openquery,Sql,Sql Server 2008 R2,Active Directory,Openquery,我有一个包含5个用户的广告组。其中3个用户来自域1,2个来自受信任的域2 在我读出哪些用户可以访问哪些组后,我在从domain2获取用户时遇到了一个问题 我正在使用openquery访问adsi。域和服务器是2008 R2 这是对这个主题的扩展 更新 这是查询,但我收到错误信息: 这是我的查询,可以工作,但我无法从其他域获取嵌套组或用户 select samAccountName,distinguishedName FROM OPENQUERY(ADSI,'

我有一个包含5个用户的广告组。其中3个用户来自域1,2个来自受信任的域2

在我读出哪些用户可以访问哪些组后,我在从domain2获取用户时遇到了一个问题

我正在使用openquery访问adsi。域和服务器是2008 R2

这是对这个主题的扩展

更新 这是查询,但我收到错误信息:

这是我的查询,可以工作,但我无法从其他域获取嵌套组或用户

select samAccountName,distinguishedName 
            FROM OPENQUERY(ADSI,'
                SELECT samAccountName,distinguishedName 
                FROM ''LDAP://domain/DC=...,DC=....,DC=....''
                WHERE 
                    objectCategory=''user'' AND
                    memberof= ''CN=..,OU=..,DC=...,DC=....,DC=....'' ') 

没有关于openquery到adsi的知识。只有一些评论:

在第二个搜索语句中,应使用memberOf而不是member FSP用于表示来自国外森林的安全主体。看见 从FSP返回用户/组的唯一提示是objectSID属性中的SID。但似乎没有简单的方法可以做到这一点。看见 只能使用member和memberOf属性获取直接成员或包含组,但不能嵌套 由于主组而产生的组成员根本不在member和memberOf中列出。 更新:

好的,根据你的链接,以下应该是有效的:

SELECT samAccountName,distinguishedName
    FROM OPENQUERY (ADSI, '<LDAP://domain/DC=...,DC=....,DC=....>;
    (&(objectCategory=user)(member:1.2.840.113556.1.4.1941:=CN=..,OU=..,DC=...,DC=....,DC=....));samAccountName, distinguishedName;subtree');
此外,请根据以下内容检查功能级别:


:1.2.840.113556.1.4.1941:=语法要求功能级别为2008 R2。

更新我尝试使用此语法时遇到错误。从LDAP://DC=…,DC=。。其中ObjectClass=用户和成员:1.2.840.113556.1.4.1941:=CN=…,OU=…,DC=…,DC=…'我发现使用:1.2.840.113556.1.1.4.1941:我将获得来自其他域但我无法使用语法的嵌套组和用户?:1.2.840.113556.1.1.4.1941:LDAP_匹配规则_IN_链匹配规则要求域/林功能级别为2008 R2忘记域或林。您的林/域是否支持此功能?您的更新适用于1.2.840.113556.1.4.1941,但在域中,我搜索的林/域仅为W2K3,这可能是我无法看到来自其他域的嵌套组或用户的原因。谢谢,我会在你的帖子上做标记。我现在几乎要完成这个任务了。有人知道我怎么用Variable吗?选择samAccountName,区分OPENQUERY ADSI中的名称'&objectCategory=usermember:1.2.840.113556.1.4.1941:=CN='+@Variable+',OU=..,DC=..,DC=..,DC=。。。。;samAccountName,区分名称;子树';varible@varible在第一次出现错误+我想我可能需要很多??根据这一点。OPENQUERY不接受变量作为其参数。您可能需要先将SQL语句组合成字符串,然后执行它。
SELECT samAccountName,distinguishedName
    FROM OPENQUERY (ADSI, '<LDAP://domain/DC=...,DC=....,DC=....>;
    (&(objectCategory=user)(member:1.2.840.113556.1.4.1941:=CN=..,OU=..,DC=...,DC=....,DC=....));samAccountName, distinguishedName;subtree');