0
我正在使用sql server从活动目录导入组和用户。我找到了下面的代码来拉出组和用户。从活动目录获取说明
CREATE TABLE ##Groups (CN VARCHAR(128), DN VARCHAR(1024), Email VARCHAR(128), ADSPath VARCHAR(1024));
CREATE TABLE ##Users (DistributionGroup VARCHAR(128), FirstName VARCHAR(50), LastName VARCHAR(50), EmailAddress VARCHAR(128));
DECLARE @sql VARCHAR(1024)
SET @sql = 'INSERT INTO ##Groups (CN, DN, Email, ADSPath) SELECT CN, distinguishedName DN, mail Email, ADSPath FROM OpenQuery(ADSI, ''<LDAP://controller.domain.com:389/DC=domain,DC=com>;(&(objectClass=Group));cn, distinguishedName, mail, ADSPath;subtree'') ORDER BY distinguishedName';
EXEC(@sql);
DECLARE @CN VARCHAR(128)
DECLARE @DN VARCHAR(1024)
SELECT TOP 1 @CN = CN, @DN = DN FROM ##Groups
WHILE EXISTS(SELECT DN FROM ##Groups WHERE DN > @DN)
BEGIN
SET @sql = 'INSERT INTO ##Users (DistributionGroup, Firstname, LastName, EmailAddress) SELECT '''[email protected]+''' [Distribution Group], ISNULL(givenName, '''') FirstName, ISNULL(sn, '''') LastName, mail EmailAddress FROM OpenQuery(ADSI, ''<LDAP://controller.domain.com:389/DC=domain,DC=com>;(&(objectClass=User)(memberOf='[email protected]+'));givenName, sn, mail;subtree'')';
EXEC(@sql)
SELECT TOP 1 @CN = CN, @DN = DN FROM ##Groups WHERE DN > @DN
END
SELECT * FROM ##Groups;
SELECT * FROM ##Users;
DROP TABLE ##Groups;
DROP TABLE ##Users;
工作很好。现在,我想抽出关于这些组的描述,但我似乎无法找出该字段被称为什么。帮帮我?
好的。我向查询添加说明并得到此错误:消息7341,级别16,状态2,行1 无法从链接服务器“ADSIDSOObject”的ADLEDS提供程序“ADSDSOObject] .description”列中获取当前行值”。由于符号不匹配或溢出以外的原因,无法转换数据值。 – DForck42 2011-02-14 20:10:29