2010-09-13 14 views
1

J'ai 100 sites d'équipe dans SharePoint 2010. À la dernière minute, on m'a demandé de cacher un onglet sur chacun de ces sites. Grâce à l'interface graphique, je pourrais le faire en utilisant l'option de navigation sous Paramètres du site, mais je devrais le faire pour tous les 100 sites. Y a-t-il un moyen de faire cela par programme? Ou globalement à travers l'interface graphique (je doute que ce soit une option)? J'ai essayé d'utiliser JQuery, mais en raison du décalage, ce n'est pas une option viable. Je me suis dit qu'il pourrait aussi y avoir la possibilité d'écrire un script PowerShell pour le faire - je suis encore tout nouveau pour PowerShell.Comment masquer un onglet SharePoint sur 100 sites? (SP2010)

Pensées? Merci.

Répondre

1

Vous devez utiliser quelque chose comme ceci dans votre application Console:

SPSite site = new Site("http://yoursite"); 
foreach (SPWeb web in site.AllWebs) 
{ 
    foreach(SPNavigationNode node in web.Navigation.TopNavigationBar) 
    { 
     if (node.Title == "Test") 
     { 
      node.IsVisible = false; 
      node.Update(); 
     } 
    } 
    web.Dispose(); 
} 
site.Dispose(); 

Ce script permet de masquer tous les nœuds avec le titre "Test". Vous pouvez également utiliser la propriété Url pour déterminer si le noeud doit être masqué.

Ici, je pense que vous devez modifier la navigation de 100 sites Web enfants dans la collection de sites "http://yoursite".

P.S. Veuillez vous assurer que vous ciblez .Net Framework 3.5 dans votre application Console et que la plate-forme AnyCPU est spécifiée dans les propriétés du projet Visual Studio. Ou vous pouvez obtenir des erreurs en disant que votre site n'a pas été trouvé.

Questions connexes