【发布时间】:2016-12-28 12:35:02
【问题描述】:
我使用的是 Microsoft Project Server 2010,我需要批量更新与活动项目关联的项目网站 (PWS) 中的一些 SharePoint 列表。
如果项目状态自定义字段具有某些特定值,则项目被视为“活动”。
类似于下面的伪代码:
Get-AllProjectServerProjects |
Where-Object { ($_.CustomFields["Project Status"]) -eq 'active' } |
Foreach-Object {
$projectWebSite = $_.ProjectWebSiteURL
# Code here to update SharePoint list for this site
}
我已经有了更新 SharePoint 列表的代码,我正在寻找一种将项目网站与“活动”项目相关联的方法。
据我所知,没有公开 Project Server 数据的 PS cmdlet。相反,必须通过 PSI Web 服务并使用 ReadProjectList() 方法。
我已设法通过 ReadProjectList() 获得项目列表,但无法判断它们是否为“活动”项目,并且我无法找到项目网站的直接链接。
我可以使用 SharePoint cmdlet 遍历所有项目网站并匹配项目名称,但这似乎不是最佳选择,我仍然需要知道哪些项目是“活动的”。
【问题讨论】:
-
有一种从项目 UID 获取工作区 URL 的方法。 WssInterop Web 服务的 ReadWssInfo 方法返回一个 ProjectWSSInfoDataSet 对象,其中包括项目网站 URL(如果项目存在)。一旦我破解了问题的“活动”状态部分,我将发布完整答案。
标签: powershell ms-project-server-2010