Ошибка при обновлении URL-адресов ссылок при быстром запуске на сайте sharepoint 2013 с помощью powershell
У меня проблема при попытке обновить URL-адреса ссылок при быстром запуске на сайте sharepoint 2013 с помощью powershell. В основном я только хочу изменить URL-адрес конкретных ссылок. Мой код скрипта Powershell выглядит следующим образом:
function FixUrlDocumentsLists() {
param([Microsoft.SharePoint.SPWeb]$SiteIdentity)
if ($SiteIdentity.Url -Like "http://mktintranet/sites/tmmkto/ITReports")
{
$quicklaunch = $SiteIdentity.Navigation.QuickLaunch
if($quicklaunch.Count -gt 0)
{
foreach($node in $quicklaunch)
{
if ($node.Title.ToUpper() -ne "HOME" -and $node.Title.ToUpper() -ne "SITE CONTENTS")
{
if($node.Url -eq $SiteIdentity.ServerRelativeUrl)
{
Write-Host "Fixing navigation links for web $($SiteIdentity.Title)" -ForegroundColor Yellow
Write-Host "Link Title: $($node.Title), OLD Link Url: $($node.Url)" -ForegroundColor Yellow
$node.Url=$node.Url.ToString()+"/_layouts/15/viewlsts.aspx"
Write-Host "Link Title: $($node.Title), NEW Link Url: $($node.Url)" -ForegroundColor Yellow
$node.Update()
$SiteIdentity.Update()
}
}
}
}
}
if($SiteIdentity.Webs.Count -gt 0)
{
foreach($subWeb in $SiteIdentity.Webs)
{
FixUrlDocumentsLists -SiteIdentity $subWeb
}
}
}
Ошибка возникает в методе $node.Update(). Описание ошибки выглядит следующим образом:
Exception calling "Update" with "0" argument(s): "Cannot open "/sites/tmmkto/ITReports/_layouts/15/viewlsts.aspx": no such file or folder."
Я не могу понять, почему метод Update делает проверку URL. Хотя путь /sites/tmmkto/ITReports/_layouts/15/viewlsts.aspx действительно существует.
Спасибо,
Мартин
2 ответа
SharePoint пытается проверить URL-адрес узла, если это внутренний URL-адрес. Обходной путь - пометить вашу ссылку как внешнюю (даже если это не так) с помощью: Node.IsExternal = true; (Csom)
Пожалуйста, убедитесь, что опция Показывать под-сайты / Показывать страницы не отмечена
Настройки сайта => Навигация => Текущая навигация =>
in Navigation: отображать только элементы навигации ниже текущего сайта. Вы получите такую ошибку, если попытаетесь обновить навигационные ссылки, генерируемые из файлов подузла / страницы. Имеет смысл сообщать об ошибке, если эта опция включена, и вы пытаетесь изменить ссылку для автоматически сгенерированной ссылки на сайт / страницу.