2012-10-29 26 views
0

我試圖編寫powershell script以瀏覽站點集合中的所有子站點,並刪除不再需要的節點。從站點集合中刪除具有Powershell的導航節點在站點集合中的所有站點中都使用Quicklaunch

我已經把我下面的腳本 - 但我發現在獲取-的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() 
} 
+0

作爲解決方案,我使用腳本遍歷所有站點,然後運行輔助刪除腳本以刪除節點。刪除節點的參考文獻是http://secretsofsharepoint.com/cs/blogs/tips/archive/2011/07/21/removing-nodes-from-the-quicklaunch.aspx,對於網站迭代,http:// derbium .wordpress.com/2011/10/19 /運行一個腳本在所有網站的Web應用程序/ - 謝謝Derbium和Niklas –

回答

0

我只是遇到了這個問題,所以以爲我會分享,記在我的情況下,它是刪除名爲「庫」的所有快速啓動菜單中的項目,如果它有沒有孩子:

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與您自己的網站集URL和libraries與您試圖刪除的任何標題。

相關問題