2016-02-17 2 views
0

J'ai un problème en essayant de mettre à jour les URL de lien dans le lancement rapide sur le site sharepoint 2013 avec powershell. Fondamentalement, je veux seulement changer l'URL de liens spécifiques. Mon code de script Powershell est la suivante:Erreur lors de la mise à jour des URL de lien dans le lancement rapide sur le site Sharepoint 2013 avec 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 
    } 
} 

}

L'erreur se produit sur la méthode node.Update() $. La description de l'erreur est la suivante:

Exception calling "Update" with "0" argument(s): "Cannot open "/sites/tmmkto/ITReports/_layouts/15/viewlsts.aspx": no such file or folder." 

Je ne parviens pas à comprendre pourquoi la méthode Update effectue la validation Url. Même si le chemin /sites/tmmkto/ITReports/_layouts/15/viewlsts.aspx existe.

Merci,

Martin

Répondre

-1

S'il vous plaît assurer Afficher sous-sites/option Afficher les pages est décochée sous

Paramètres du site => Navigation => Current Navigation =>

Navigation: Affichage seulement les éléments de navigation sous le site actuel. Vous obtiendrez une telle erreur si vous essayez de mettre à jour les liens de navigation générés à partir des fichiers de sous-site/page. Il est logique de donner une erreur si cette option est activée et que vous essayez de modifier le lien pour le sous-site/lien de page généré automatiquement.

0

SharePoint essaie de vérifier l'URL du nœud s'il s'agit d'une URL interne. Sur le bon chemin, ceci est de marquer votre lien comme externe (même s'il ne l'est pas) par: Node.IsExternal = true; (csom)