2010-11-25 22 views
1

設定はMOSS2007です。 QuickLaunchのリンクを繰り返してURLを更新します。PowerShellを使用してSharePointのクイックスタートリンクURLを更新します。

$siteUrl = "http://myserver/" 
$spSite = new-object Microsoft.SharePoint.SPSite($siteurl) 
for($i=0; $i -lt $spSite.AllWebs.Count;$i++) 
{ 
    $spWeb = $spSite.AllWebs[$i] 
    $nodes = $spWeb.Navigation.QuickLaunch 
    for($j=0; $j -lt $nodes.Count;$j++) 
    { 
      $children = $nodes[$j].Children 
      for($k=0; $k -lt $children.Count;$k++) 
      { 
        $x = $children[$k] 
        $x.Url = "http://mylink/" 
        $x.Update() 
      } 
    } 
    $spSite.Dispose(); 
} 

ただし、Doclib URLは更新されません。サイトの設定 - >ナビゲーション - >に移動してUIでURLを編集し、スクリプトをもう一度実行すると、URLが更新されます。コードでURLを操作できないのはなぜですか?

+0

PowerShellのバージョンは1.0です。 MOSSは公開機能を備えています。 – andersbs

答えて

1

これが答えかどうかわかりませんが、あなたのDisposeが間違った場所にあるように見えます。これはforeachの外側、つまり$ spSiteの代入と同じネストレベルでなければなりません。この繰り返しの処分は、同期の問題を引き起こしている可能性があります。

+0

あなたは正しいです。処分は間違った場所にあります。しかし、それは残念なことに、問題を解決しませんでした。 :-) – andersbs

+0

@AndersBS - おそらくあなたはこれを解決したとマークできますか? – bgmCoder

関連する問題