SharePoint Service 3.0:从 Active Directory 中提取用户信息

SharePoint Service 3.0:从 Active Directory 中提取用户信息

我正在开发运行在 SharePoint Service 3.0 上的公司 SharePoint Intranet 网站。除了一件事外,其他一切都运行正常。

我想创建一个员工列表,其中包含有关员工的所有信息,如电话、电子邮件、姓名、公司职位等。问题是,所有这些信息都已在我们的 Active Directory 中,因此我想提取这些数据并从 AD 中创建员工列表,而不是将它们全部重新写下来。此外,只需在 AD 中更改,这对于员工的更新和维护将有很大帮助。

我希望我已经正确解释了我的问题,否则,请告诉我。

真诚的
梅斯蒂卡

答案1

看起来您正在向我谈论将 AD 信息同步到 SharePoint 列表。

我以前遇到过同样的问题。有人告诉我 SharePoint(我的情况是 SharePoint 2007)内置功能提供了这样的功能,但我甚至没有通过使用内置功能来实现这一点。这就是为什么我最终使用第三方工具,例如SharePoint AD 同步(顺便说一下,这是 30 天的免费试用期)。

仅供您参考。

答案2

对于 2007 年,我怀疑可能有用,但我还没有尝试过。网络上有许多适用于员工名录的 Web 部件,听起来就像您想要的。

我正在寻找适用于 Sharepoint 2010 的类似产品,但我的理解是,您需要具有用户配置文件同步服务的 Share Point Server Portal 版本。对于 Sharepoint 2010,这包括标准版和企业版(http://technet.microsoft.com/en-us/library/ee721049.aspx) 因此升级时请务必小心。

答案3

您可以使用 LDIFDE(xml 格式)或 CSVDE(用于 csv 输出)从 AD 中提取数据。您还可以指定要转储的记录和要提取的字段...

这里有一个很好的网站来了解详细信息:

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

答案4

编写一个 PowerShell 脚本,从 AD 获取所有用户,然后将数据推送到列表中。我过去做过的一件事是编写一个 PowerShell 脚本,查询 SQL Server DB,清除 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()

相关内容