2010-11-25 63 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不更新。如果我转到网站设置 - >导航 - >并通过用户界面编辑URL,然后再次运行我的脚本,URL更新。为什么我无法通过代码操纵网址?

+0

PowerShell版本是1.0。 MOSS具有发布功能。 – andersbs 2010-11-25 10:03:15

回答

1

我不确定这是否是答案,但它看起来像我的Dispose是在错误的地方。它应该在外部foreach之外,即与$ spSite赋值相同的嵌套级别。这种重复的处理可能会导致同步问题。

+0

你说得对。处置是在错误的地方。但不幸的是,这并没有解决问题。 :-) – andersbs 2011-01-25 13:16:41