Я работаю над импортом групп и пользователей из активного каталога с использованием SQL-сервера. Я нашел следующий код, чтобы вытащить обе группы и пользователей.Получить описание из активного каталога
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;
Это работает очень красиво. Теперь я хотел бы вывести описание для групп, но я не могу понять, что называется полем. Помогите?
ok. Я добавляю описание запроса и получаю эту ошибку: Msg 7341, Level 16, State 2, Line 1 Не удается получить значение текущей строки столбца «[ADSDSOObject] .description» от поставщика OLE DB «ADSDSOObject» для связанного сервера «ADSI ». Не удалось преобразовать значение данных из-за причин, отличных от несоответствия знака или переполнения. – DForck42
@ DForck42: вы, вероятно, не можете получить его через искалеченного поставщика OLE DB, поскольку «описание» является потенциально многозначным атрибутом. Я не думаю, что вы можете что-то сделать с этим, к сожалению .... –
http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/7026e0b3-c20d-4e19-a017-926a23df60d7 / –