none
Renommer un répertoire d'une bibliothèque de documents en PowerShell RRS feed

  • Question


  • Bonjour, je souhaiterais écrit un script powershell qui permettrait de modifier le nom d'un répertoire dans une bibliothèque de documents.
    Ici le répertoire s'appelle opérateur :

    Code :
    $site = "test";
     
    $web = get-SPWeb "http://local.test.fr/$site"
     
    $op = $web.getList("/$site/operateur")
    Quelqu'un sait comment faire?

    Merci
    vendredi 1 avril 2011 08:37

Réponses

  • Il n'y a pas de fonction de renommage de dossier sur SharePoint.
    Par contre, il existe une fonction "MoveTo" :

    Exemple :

    j'ai un site  http://monsite, avec une bibliothèque de doc "Shared Documents", et dedans un dossier "Test" que je veux renommer en "Test2"

    $SiteUrl = "http://monsite"
    $FolderRelativeUrl = "Shared Documents/Test"
    $NewFolderRelativeUrl = "Shared Documents/Test2"
    
    $web = Get-SPWeb $SiteUrl 
    $folder = $web.GetFolder($FolderRelativeUrl)
    $folder.MoveTo($NewFolderRelativeUrl)
    

    Sylvain Reverdy
    Consultant / Formateur à Winwise
    Mon blog
    vendredi 1 avril 2011 18:25

Toutes les réponses

  • Il n'y a pas de fonction de renommage de dossier sur SharePoint.
    Par contre, il existe une fonction "MoveTo" :

    Exemple :

    j'ai un site  http://monsite, avec une bibliothèque de doc "Shared Documents", et dedans un dossier "Test" que je veux renommer en "Test2"

    $SiteUrl = "http://monsite"
    $FolderRelativeUrl = "Shared Documents/Test"
    $NewFolderRelativeUrl = "Shared Documents/Test2"
    
    $web = Get-SPWeb $SiteUrl 
    $folder = $web.GetFolder($FolderRelativeUrl)
    $folder.MoveTo($NewFolderRelativeUrl)
    

    Sylvain Reverdy
    Consultant / Formateur à Winwise
    Mon blog
    vendredi 1 avril 2011 18:25
  • Merci pour ta réponse.

    Et une fonction pour renommer le nom de la bibliothèque de document existe t elle?

    Merci

    lundi 4 avril 2011 10:08
  •  Je pense que la réponse sera la même. Utiliser la fonction "MoveTo" et ensuite supprimer la document library initiale...

    Pascal P
    http://sharepoint-afterwork.com
    http://pascalp.dotnet-france.com/
    Twitter: @PascalPoeck
    lundi 4 avril 2011 10:33
  • Je pense également, mais on ne sait jamais.
    lundi 4 avril 2011 12:19
  • mon problème est que le moveto change juste le lien.

    Moi je veux que le contenu de la bibli1 soit copié dans bibli2, si on ne peux pas le renommer, est ce possible?

    Merci

    lundi 4 avril 2011 13:14
  • Pour répondre aux questions :

    - Il n'y a pas de fonction de renommage.

    - La fonction "MoveTo" déplace le contenu dans un nouveau dossier (le dossier source est supprimé automatiquement)

    - Il y a une fonction "CopyTo" qui copie le contenu. (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfolder.copyto.aspx)


    Sylvain Reverdy
    Consultant / Formateur à Winwise
    Mon blog
    lundi 4 avril 2011 17:29
  • Merci pour ta réponse, en effet moveto et copyto fonctionnent parfaitement, le nom du dossier est renommé, cependant le nom de la documentLibrary n'est pas renommé et reste le même, comment faire pour le renommer ensuite?

     

    dans l'exemple suivant j'ai réussi a renommer le lien de opérateur en "nouveautest" mais comme on le voit ici le name du documentLibrary reste opérateur alors que je voudrais qu'il passe à nouveautest

     

     

    Name                      : nouveautest
    
    ServerRelativeUrl         : /monsite/nouveautest
    
    WelcomePage               :
    
    Files                     : {}
    
    SubFolders                : {nouveautest/Services infrastructures, nouveautest/
    
                                Logiciels, nouveautest/Procédures internes, nouveau
    
                                test/Forms...}
    
    ContainingDocumentLibrary : a47d61b2-4d38-4018-a7ec-ca83d1be5b8a
    
    RequiresCheckout          : False
    
    DocumentLibrary           : Opérateur

     

    mardi 5 avril 2011 12:27
  • avec un $liste=$spWeb.Lists[$NomListe] et $liste.title je parviens à changer le title, ensuite je fais un update, mais la liste garde toujours l'ancien nom

    je ne vois pas comment faire

    mardi 5 avril 2011 14:27
  • Bonjour,

    Pour les listes, on peut changer aisément le titre :

    $SiteUrl = "http://monsite"
    $ListTitle= "Shared Documents"
    $NewListTitle = "Blop"
    
    $web = Get-SPWeb $SiteUrl 
    $list = $web.Lists[$ListTitle]
    $list.Title = $NewListTitle
    $list.Update()
    

    Par contre on ne peut pas changer aisément l'URL :
    Le seul bon moyen semble d'utiliser SharePoint Designer : http://www.dotnetindia.com/2011/02/changing-document-librarys-website-url-in-sharepoint-2010.html


    Sylvain Reverdy
    Consultant / Formateur à Winwise
    Mon blog
    mardi 5 avril 2011 17:47
  • Bonjour Merci de ta réponse, j'avais déjà testé le .Title et update, sauf que le title est bien modifié dans le powershell, mais sur le sharepoint, il y a toujours l'ancien nom. (Je précise que je fais bien le update) 

    pour changer l'url par contre je n'ai aucun problème

    mercredi 6 avril 2011 13:25
  • Bonjour,

    Le update aurait du changer le titre de la bibliothèque. Chez moi, ça marche.
    Par contre je suis curieux : Comment avez vous changé l'URL de la bibliothèque de document ?


    Sylvain Reverdy
    Consultant / Formateur à Winwise
    Mon blog
    mercredi 6 avril 2011 21:18
  • J'ai changé l'url avec la fonction MoveTo justement, même si cela correspond à un déplacement de fichiers, au final ma bibliothèque garde le même nom donc pour moi c'est juste un changement d'url
    jeudi 7 avril 2011 09:27
  • D'ailleur je ne comprend pas comment le code suivant peut fonctionner chez vous car même si le title est changé ici, le title dans propertiesXml reste le même et d'après ce que j'ai cru comprendre, c'est le titre du propertiesXml qui est affiché et non le $list.Title non?

     

     

     
    $list.Title = $NewListTitle
    $list.Update()

     


    jeudi 7 avril 2011 09:29
  • Bonjour,

    Attention, quand vous dites que vous changez l'url, vous parlez du dossier, pas de la liste !
    J'ai du mal à vous suivre...

    Pour votre remarque sur propertiesXml :
    Cette propriété a juste un Get.
    D'ailleur c'est simplement l'aggrégation de toutes les propriétés de la liste (utilisez reflector ou ILSpy pour vérifier).

    Je viens de revérifier le code powershell : Il fonctionne correctement chez moi : Le titre de la liste est bien changé...


    Sylvain Reverdy
    Consultant / Formateur à Winwise
    Mon blog
    jeudi 7 avril 2011 17:50
  • Moi ça ne fonctionne toujours pas je t'ai fait un copié collé du code pour bien te montrer.

     

     

    PS C:\Users\administrateur\PSCRIPT> $SiteUrl = "http://monsite.fr/test"
    PS C:\Users\administrateur\PSCRIPT> $ListTitle= "Gouvernance"
    PS C:\Users\administrateur\PSCRIPT> $NewListTitle = "supertest"
    PS C:\Users\administrateur\PSCRIPT>
    PS C:\Users\administrateur\PSCRIPT> $web = Get-SPWeb $SiteUrl
    PS C:\Users\administrateur\PSCRIPT> $list.Title
    Gouvernance
    PS C:\Users\administrateur\PSCRIPT> $list = $web.Lists[$ListTitle]
    PS C:\Users\administrateur\PSCRIPT> $list.Title = $NewListTitle
    PS C:\Users\administrateur\PSCRIPT> $list.Update()
    PS C:\Users\administrateur\PSCRIPT>
    PS C:\Users\administrateur\PSCRIPT> $list.title
    supertest
    PS C:\Users\administrateur\PSCRIPT>
    PS C:\Users\administrateur\PSCRIPT> $web.update()
    

     

    Comme on le voit ici le Title de la liste a bien changé, seulement dans le Sharepoint il reste pareil.

     



    vendredi 8 avril 2011 13:11
  • Bon ben là je sèche...
    Vous êtes sur que le titre de la liste ne change pas ?

    Si vous avez Visual Studio sous la main, essayez de le faire en console application pour voir si il y a une différence ?

    Bon, par contre, je rappel que le titre de ce Post de forum est "Renommer un répertoire d'une bibliothèque de documents en PowerShell".
    J'ai répondu à cette question dans ma première réponse. Merci de la valider comme telle.


    Sylvain Reverdy
    Consultant / Formateur à Winwise
    Mon blog
    vendredi 8 avril 2011 18:25