0

powershell を使用して sharepoint 2013 サイトのクイック起動でリンク URL を更新しようとすると問題が発生します。基本的に、特定のリンクの 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 は存在しますが。

ありがとう、

マーティン

4

2 に答える 2

-1

サブサイトを表示/ページを表示オプションがチェックされていないことを確認してください

サイト設定 => ナビゲーション => 現在のナビゲーション =>

ナビゲーション内: 現在のサイトの下にあるナビゲーション アイテムのみを表示します。サブ サイト/ページ ファイルから生成されたナビゲーション リンクを更新しようとすると、このようなエラーが発生します。このオプションをオンにして、自動生成されたサブ サイト/ページ リンクのリンクを変更しようとすると、エラーが発生するのは理にかなっています。

于 2016-08-15T14:22:11.633 に答える