Я использую Microsoft Project Server 2010, и мне нужно массово обновить некоторые списки SharePoint на веб-сайтах проекта (PWS), связанных с активными проектами.
Проекты считаются «активными», если в пользовательском поле «Статус проекта» указаны определенные значения.
Что-то вроде следующего псевдокода:
Get-AllProjectServerProjects |
Where-Object { ($_.CustomFields["Project Status"]) -eq 'active' } |
Foreach-Object {
$projectWebSite = $_.ProjectWebSiteURL
# Code here to update SharePoint list for this site
}
У меня уже есть код для обновления списков SharePoint, и я ищу способ связать веб-сайты проектов с «активными» проектами.
Насколько я могу судить, не существует командлетов PS, раскрывающих данные Project Server. Скорее, необходимо пройти через веб-службу PSI и использовать метод ReadProjectList().
Мне удалось получить список проектов через ReadProjectList(), но я не могу сказать, являются ли они «активными» проектами, и мне не удалось найти прямую ссылку на веб-сайт проекта.
Я мог бы перебрать все веб-сайты проекта с помощью командлетов SharePoint и сопоставить имя проекта, но это не кажется оптимальным, и мне все еще нужно знать, какие проекты «активны».