2012-05-11 1 views
1

Я хочу добавить ссылку QuickLaunch на сайт с помощью powershell.Добавить новую ссылку для быстрой загрузки на сайт SharePoint

Сценарий настоящее время я использую это:

$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 

Что я делаю неправильно?

ответ

1

Метод SPNavigationNodeCollection.Add нуждается во втором параметре - существующий SPNavigationNode, чтобы поместить вновь добавленный за ним. Вы можете найти один by URL, например, или путем перечисления коллекции. Или просто поместите свой новый на передний план (AddAsFirst) или назад (AddAsLast).

$web.Navigation.QuickLaunch.AddAsLast($node) 

Update: Как добавить ссылку на группу сайтов:

$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) 

--- Ферда

+0

ok) спасибо! '$ web = Get-SPWeb http: // sp_3/Deps $ node = New-Object -TypeName Microsoft.SharePoint.Navigation.SPNavigationNode -ArgumentList "LinkTitle", "http: // sp_3/Deps/SUP", 1 $ web.Navigation.QuickLaunch.Add ($ узел); 'Используйте этот код, я получаю толстую ссылку на ваш сайт. (Теперь моя ссылка расположена на панели быстрого запуска отдельно, одиноко) Вопрос: Как мне сделать ссылку на сайты под названием «Сайты»? – spbsmile

+0

Надеюсь, вы меня поняли – spbsmile

+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

Предупреждение об этом при использовании SharePoint 2013 для создания узлов, указывающих на библиотеки документов: добавление узла, как указано выше, не позволяет создать ** связанную с ** ссылку **. Поэтому для этого случая скорее установите свойство list.OnQuickLaunch для автоматического создания узла. –

+0

Спасибо за указатель там для других людей. Я все еще придерживаюсь 2010 года. +1 – bgmCoder

Смежные вопросы