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 回答