首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用powershell的sharepoint 2013站点上的快速启动中更新链接urls时出错

在使用powershell的sharepoint 2013站点上的快速启动中更新链接urls时出错
EN

Stack Overflow用户
提问于 2016-02-17 20:27:22
回答 2查看 1.3K关注 0票数 0

在使用powershell的sharepoint 2013站点上尝试在快速启动中更新链接urls时遇到问题。基本上我只想改变特定链接的网址。我的Powershell脚本代码如下:

代码语言:javascript
复制
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()方法上。错误描述如下:

代码语言:javascript
复制
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确实存在。

谢谢,

马丁

EN

回答 2

Stack Overflow用户

发布于 2017-08-16 01:28:15

SharePoint如果是内部url,请尝试验证节点url。解决这个问题的方法是将你的链接标记为外部的(即使它不是外部的),方法是: Node.IsExternal = true;(csom)

票数 1
EN

Stack Overflow用户

发布于 2016-08-15 22:22:12

请确保在以下位置取消选中显示子站点/显示页面选项

站点设置=>Navigation => Current Navigation=>

在导航中:仅显示当前网站下的导航项。如果您尝试更新从子站点/页面文件生成的导航链接,则会出现此类错误。如果打开此选项,并且您尝试修改自动生成的子站点/页面链接的链接,则给出错误是有意义的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35456727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档