2012-04-17 33 views
1

基本的なチームサイトテンプレートのメインページには、既定で予定表Webパーツとそのビューが予定表一覧の予定表に基づいています。私の問題は、カレンダーリストに新しいカレンダーオーバーレイを適用した後で、この変更を反映するためにメインページビューが自動的に更新されないということです。代わりにwebpartを編集し、カレンダービュー(現在デフォルトで使用されているもの)を選択し、その変更を適用する必要があります。私は運がないとpowershellでこの作業を達成しようとしています。Sharepoint 2010 Calendar Webpart View Powershell

私が使用しattempingたコードは次のとおりです。

$web = get-spweb "http://portal/site/testsite1" 
$file = $web.getfile("default.aspx") 
$manager = $file.getlimitedwebpartmanager([System.web.ui.webcontrols.webparts.personalizationscope]::shared) 
$manager.webparts | format-list title, ID 

$wp = $manager.webparts["GUID_HERE"] 
$doclib = $web.lists["Calendar"] 
$view = $doclib.Views["Calendar"] 

$wp.ViewGuid = $view.ID.ToString("B").ToUpper() 
$manager.SaveChanges($wp) 

は、残念ながら、これはカレンダービューに適用されている現在のオーバーレイを反映するために、ビューを更新するので、唯一の手動介入が取り組んできたでは効果的ではなかったです。このタスクを達成するために使用できるパワーシェルコードがありますか?

答えて

0

アイデアは正しいものの、詳細にはエラーがあります。 ViewGuidに頼るべきではありません。 this articleをご覧ください。それが役に立つかもしれません。その後、.NETコードをPowerShellスクリプトに変換すれば、必要なものを手に入れることができます。より良い提案は、このコードをイベントレシーバーに入れて、リストの更新時に発生するイベントに入れることです。

関連する問題