2016-08-22 3 views
0

Microsoft Project Server 2010を使用しており、アクティブなプロジェクトに関連付けられたプロジェクトWebサイト(PWS)の一部のSharePointリストを一括更新する必要があります。カスタムフィールドに特定の値のProject Serverプロジェクトをプログラムで取得する

プロジェクトステータスのカスタムフィールドに特定の値がある場合、プロジェクトは「アクティブ」とみなされます。次の擬似コードのような

何か:私はすでにSharePointリストを更新するためのコードを持っている

Get-AllProjectServerProjects | 
    Where-Object { ($_.CustomFields["Project Status"]) -eq 'active' } | 
    Foreach-Object { 
    $projectWebSite = $_.ProjectWebSiteURL 

    # Code here to update SharePoint list for this site 

    } 

、私が探している「アクティブ」なプロジェクトに関連したプロジェクトのWebサイトを取得する方法です。

私が知る限り、Project Serverデータを公開するPSコマンドレットはありません。むしろ、PSI Webサービスを経由し、ReadProjectList()メソッドを使用する必要があります。

私はReadProjectList()でプロジェクトのリストを取得できましたが、それらがアクティブなプロジェクトであるかどうかわからず、プロジェクトのWebサイトへの直接リンクを見つけることができませんでした。

SharePointコマンドレットを使用してプロジェクトのすべてのWebサイトを繰り返し処理してプロジェクト名と照合することはできますが、これは最適ではないようで、どのプロジェクトが「アクティブ」であるかを知る必要があります。

+0

プロジェクトUIDからワークスペースURLを取得する方法があります。 WssInterop WebサービスのReadWssInfoメソッドは、プロジェクトWebサイトURL(プロジェクトに存在する場合)を含むProjectWSSInfoDataSetオブジェクトを返します。私は私の質問の「アクティブな」ステータス部分を解読した後、完全な回答として投稿します。 – andyb

答えて

0

これは、最後に変更された日付を使用してアクティブであるかどうかを判断するものです。

#Set-ExecutionPolicy RemoteSigned 
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") 
$url="http://sharePoint.company.com" 
$site = New-Object Microsoft.SharePoint.SPSite($url) 
$spWebApp = $site.WebApplication 

$OutputFN = "c:\ActiveSitesReport.csv" 
"Site Name `t URL `t Last Modified" > $OutputFN 

# Iterate through all sites: 
foreach ($spSite in $spWebApp.Sites) 
{ 
    foreach ($spWeb in $spSite.AllWebs) 
    { 
       if ($spWeb.IsRootWeb) 
       { 
       $siteName = $spWeb.Title +" - Root"; 
       } 
       else 
       { 
       $siteName = $spSite.RootWeb.Title + " - " + $spWeb.Title; 
       }       
      $siteName + "`t" + $spWeb.Url + "`t" + $spWeb.LastItemModifiedDate >> $OutputFN 
     $spWeb.Dispose() 
    } 
$spSite.Dispose() 
} 
+0

提案していただきありがとうございます。適切なカットオフ日付を選ぶと、私の目的には十分近似しているかもしれません。私はPSIを介して実際のプロジェクトステータスを取得する方法があることを願っても、もう少し長い間質問をするつもりだと思います。 – andyb

関連する問題