Sharepoint Service 3.0: извлечение информации о пользователе из Active Directory

Я работаю над сайтом Sharepoint Intranet моей компании, который работает на Sharepoint Service 3.0. Все отлично работает, кроме одного.

Я хочу создать своего рода список сотрудников со всей информацией о сотруднике, такой как телефон, электронная почта, имя, должность в компании и т. Д. Дело в том, что вся эта информация уже есть в нашей Active Directory, поэтому я хотите извлечь эти данные и создать список сотрудников из AD вместо того, чтобы записывать все заново. Кроме того, было бы очень полезно в отношении обновлений и технического обслуживания сотрудников, чтобы в AD происходили только изменения.

Надеюсь, я правильно объяснил свою проблему, пожалуйста, дайте мне знать.

душевный
Mestika

4 ответа

Решение

Похоже, вы говорите о синхронизации информации AD для списка SharePoint для меня.

Я сталкивался с той же проблемой раньше. Мне сообщили, что встроенные функции SharePoint (в моем случае SharePoint 2007) предлагают такую ​​функциональность, но я даже не приблизился к этой цели, используя встроенные функции. Вот почему я использую сторонний инструмент, такой как SharePoint AD Sync (кстати, 30-дневный бесплатный).

Просто чтобы ты знал.

Напишите сценарий PowerShell, который получает всех пользователей из AD, а затем помещает данные в список. Одна вещь, которую я делал в прошлом, это написание сценария PowerShell, который запрашивает базу данных SQL Server, очищает список всех данных в SharePoint (WSS 3.0) и затем помещает текущие данные в список. Он может быть запущен по расписанию с использованием запланированных задач. Я был бы более чем готов помочь, если бы это выглядело так, как вы хотите.

Вот пример кода для стороны WSS 3.0:

[void][System.reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$site    =     new-object Microsoft.SharePoint.SPSite("https://portal.domain.com/")
$web     =    $Site.OpenWeb("rfq") 
$list    =    $web.Lists["Estimating_Load"]

$items = $list.Items;
#Purge the list.
for ($i=$items.Count -1; $i -ge 0; $i -= 1) 
{
    $items.Delete($i);
}

##Add new items to list.
foreach($dataitem in $DataSet.Tables[0])
{

        $newitem =    $list.items.Add()

        $newitem["Customer"]     = $dataitem.Company;                                                                                          
        $newitem["Quote_Number"] = $dataitem.Quote_No;                                                                                          
        $newitem["Sales_Person"] = $dataitem.Sales_Person;
        $newitem["Estimator"]    = $dataitem.Estimator;
        $newitem["Due_Date"]     = $dataitem.Due_Date;
        $newitem["Time"]         = $dataitem.TimeToCompEa;

        $newitem.update()  
}
$web.Dispose()
$site.Dispose()

Вы можете извлечь свои данные из AD, используя либо LDIFDE (в формате xml), либо CSVDE (для вывода в формате csv). Вы можете указать, какие записи для дампа и поля, которые вы хотите извлечь также...

Хороший сайт здесь для деталей:

http://www.computerperformance.co.uk/Logon/CSVDE_LDIFDE.htm

В 2007 году я подозреваю, что это может сработать, хотя я не пробовал. Существует несколько веб-частей, доступных в Интернете для каталогов сотрудников, которые звучат так, как вы хотите.

Я ищу аналогичную вещь для Sharepoint 2010, но, насколько я понимаю, для этого вам нужна версия Share Point Server Portal со службой синхронизации профилей пользователей. Для Sharepoint 2010 это включает в себя стандартные и корпоративные ( http://technet.microsoft.com/en-us/library/ee721049.aspx), поэтому будьте осторожны при обновлении.

Другие вопросы по тегам