从SharePoint中删除带有Powershell的导航节点在网站集的所有站点中快速启动

时间:2012-10-29 22:49:01

标签: powershell

我正在尝试编写powershell script来浏览网站集中的所有子网站,并删除不再需要的节点。

我已将我的脚本放在下面了 - 但我在Get-SPWeb上收到错误:管道已经停止 - 我想我可能需要设置一个参数来阻止管道关闭?任何帮助都很棒!

$site = Get-SPSite http://sitecollurl  

$site | get-spweb -limit all | foreach-object{ 

    $webURL = $_.url 

    $web = Get-SPWeb $webURL 

    $navigationNodes = $web.Navigation.QuickLaunch 

    ForEach ($Node in $NavigationNodes) 
    { 
        if($node.Title -eq "My User Profile") 
        { 
        $node.Delete()   
        } 
    } 
   $web.Dispose() 
}

1 个答案:

答案 0 :(得分:0)

我刚刚遇到过这个问题所以我想分享一下,在我的情况下,请注意删除所有名为“Libraries”的QuickLaunch菜单项,如果它没有孩子:

Get-SPSite http://sitecollectionurl | get-spweb -limit all | foreach-object{

$webURL = $_.url 
$web = Get-SPWeb $webURL 
$pubWeb = [Microsoft.Sharepoint.Publishing.PublishingWeb]::GetPublishingWeb($Web)
$qlNav = $pubWeb.Navigation.CurrentNavigationNodes
$qlHeading = $qlNav | where { $_.Title -eq "Libraries" }
$qlLibraries = $qlHeading.Children

if($qlLibraries.Count -eq 0)
{
    $qlHeading.delete()
}
else 
{
    $qlLibraries | Select Title,ID
    $count = $qlLibraries.Count
    write-host "Other Libraries are listed on $url. Count = $count"
}

$pubWeb.Update()
$web.Dispose

}

显然将http://sitecollectionurl替换为您自己的网站集网址,将libraries替换为您要删除的标题。