1

セットアップはMOSS2007です。QuickLaunch でリンクを繰り返し、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 を操作できないのはなぜですか?

4

1 に答える 1

1

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

于 2010-12-03T14:08:20.827 に答える