4

Телефонный справочник Sharepoint 2010 из AD

Пост, по сути являющийся адаптированным переводом, был написан несколько лет назад для портала GotDotNET, но он закрылся. Делюсь, поскольку, в своё время, я перелопатил кучу ресурсов в поисках достойного решения. Не плюсов ради.

Все, кто так или иначе, работал с Sharepoint 2010 сталкивался рано или поздно с задачей организации телефонного справочника компании непосредственно в виде списка Sharepoint. Материала и способов решения на просторах необъятного интернет пространства хватает, но далеко не все они работают должным образом. 


Дано:

Сервер 2008 R2

Sharepoint Foundation 2010 с комплектным SQL Express


Новая база данных/таблица

Я использовал новую базу данных с пометкой на будущее, хотя достаточно будет просто создать новую таблицу с необходимыми полями. В качестве primary key поля, разумеется, самоиндексирующееся поле:


ИМЯ_ПОЛЯ INT IDENTITY(1,1) PRIMARY KEY NOT NULL


Добавляем линк SQL к AD

Выполняем следующие запросы:


sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 'ADSDSOObject', 'adsdatasource'

sp_configure 'show advanced options', 1

reconfigure with override

sp_configure 'Ad Hoc Distributed Queries', 1

reconfigure


В итоге получаем прилинкованый сервер с AD именующийся ADSI.


Заполняем таблицу данными

INSERT INTO [имя базы].[dbo].[имя таблицы]

([поле]

,[поле]

,[поле]

,[поле]

,[поле]

)

SELECT * FROM OpenQuery(ADSI, 'SELECT полеAD, полеAD, полеAD, полеAD, полеAD FROM ''LDAP://DC=domain,DC=local'' WHERE objectCategory=''user'' ')


Это элементарно и не ново, но вдруг попадутся новички, которые не дружат с SQL.


На последок

Имея таблицу в SQL с необходимыми полями, останется только подключить Sharepoint, используя внешний список.


Спасибо за внимание, надеюсь кому-то будет полезно.