在网站集合中的所有站点中,使用SharePoint QuickLaunch中的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() 
}

我刚刚遇到了这个问题,所以我想分享,请注意,如果我没有孩子,请删除所有标题为"库"的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
}

显然,用您自己的网站收集URL替换http://sitecollectionurl,然后用您要删除的任何标题替换libraries

dan

最新更新