我正在使用Sharepoint Service 3.0上运行的公司Sharepoint Intranet站点。 除了一件事以外,一切正常。
我想创build一个员工名单,包括关于员工的所有信息,如电话,电子邮件,姓名,在公司中的职位等。事情是,所有的信息已经在我们的Active Directory中,所以我想要提取这些数据,并从AD创build员工列表,而不是再次写下来。 此外,对员工的更新和维护来说,只有在AD发生变化的时候才会有很大的帮助。
我希望我已经正确解释了我的问题,否则,请让我知道。
真诚
Mestika
看来你是在谈论同步AD信息到SharePoint列表给我。
我以前遇到同样的问题。 我被告知,SharePoint(在我的情况下)build立在function提供这样的function,但我甚至没有通过使用内置function接近于此。 这就是为什么我最终使用第三方工具,如SharePoint AD同步 (顺便说一句,这是30天免费)。
只是为了您的信息。
对于2007年,我怀疑这可能工作,虽然我还没有尝试过。 在网页上有许多Web部件可用于员工目录,这听起来像你想要的。
我在为Sharepoint 2010寻找类似的东西,但我的理解是,您需要一个带有用户configuration文件同步服务的Share Point Server Portal版本。 对于Sharepoint 2010这包括标准和企业( http://technet.microsoft.com/en-us/library/ee721049.aspx )所以要小心,如果你升级。
您可以使用LDIFDE(以xml格式)或CSVDE(以csv输出)将数据从AD中提取出来。 您可以指定要转储的logging以及要提取的字段…
良好的网站在这里的细节:
编写一个PowerShell脚本,从AD获取所有用户,然后将数据推送到列表中。 过去我做的一件事是编写一个查询SQL Server数据库的PowerShell脚本,清除所有数据的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()