1

我想获得Active Directory用户以及他们是使用SQL Server 2005链接服务器成员的安全组的列表。我有查询工作来检索记录,但我不知道如何访问memberOf属性(这是一个多值LDAP属性)。使用SQL Server 2005通过LDAP访问Active Directory角色成员

我有这样的临时存储信息:

DROP TABLE #ADUSERGROUPS 
CREATE TABLE #ADUSERGROUPS 
(
sAMAccountName varchar(30), 
UserGroup varchar(50) 
) 

每个组/用户的关联应该是一行。

这是我的SELECT语句:

SELECT sAMAccountName,memberOf 
FROM OpenQuery(ADSI, '<LDAP://hqdc04/DC=nt,DC=avs>; 
       (&(objectClass=User)(sAMAccountName=9695)(sn=*)(mail=*)(userAccountControl=512)); 
       sAMAccountName,memberOf;subtree') 

我收到此错误信息:

OLE DB错误跟踪[/ OLE DB提供 'ADSDSOObject' 的IRowset ::返回的GetData 0x40eda:数据状态从提供者返回:[COLUMN_NAME = memberOf STATUS = DBSTATUS_E_CANTCONVERTVALUE],[COLUMN_NAME = sAMAccountName STATUS = DBSTATUS_S_OK]]。 消息7346,级别16,状态2,行2 无法从OLE DB提供程序'ADSDSOObject'中获取该行的数据。由于符号不匹配或溢出以外的原因,无法转换数据值。

回答