我想使用PowerShell向网站添加QuickLaunch链接。
我目前使用的脚本是:
$web = Get-SPWeb http://sp_3/Deps
$node = New-Object -TypeName Microsoft.SharePoint.Navigation.SPNavigationNode
-ArgumentList "LinkTitle", "http://sp_3/Deps/SUP"
$web.Navigation.QuickLaunch.Add($node);
$web.Update()
导致以下错误:
Can not find an overload for the "Add" and the number of arguments: "1." line: 1 char: 32
+ $ Web.Navigation.QuickLaunch.Add <<<< ($ node);
+ CategoryInfo: NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId: MethodCountCouldNotFindBest
我做错了什么?
答案 0 :(得分:2)
啊! This page拥有最优秀的教程和示例。这对我有用(SP 2010)
$quickLaunch = $currentWeb.navigation.quicklaunch
$libheading = $quickLaunch | where { $_.Title -eq "Libraries" }
$newnode = New-Object Microsoft.SharePoint.Navigation.SPNavigationNode($whattitle, $myurllink, $true)
$libheading.Children.AddAsLast($newnode)
$currentweb.update()
答案 1 :(得分:1)
方法SPNavigationNodeCollection.Add
需要第二个参数 - 现有SPNavigationNode
以将新添加的参数放在其后面。您可以找到一个by URL,例如,或通过枚举该集合。或者只是将新的一个放在前面(AddAsFirst
)或后面(AddAsLast
)。
$web.Navigation.QuickLaunch.AddAsLast($node)
更新:如何添加指向“网站”群组的链接:
$quickLaunch = $web.Navigation.QuickLaunch
# Print the $quickLaunch collection and choose a property
# identifying the best the link group you want. I chose URL.
$sitesUrl = "/sites/team/_layouts/viewlsts.aspx"
$sitesGroup = $quickLaunch | Where-Object { $_.Url -eq $sitesUrl }
$sitesGroup.Children.AddAsLast($node)
---费达