none
Script PS qui énumère les documents postés sur le SP RRS feed

  • Question

  • Bonjour j'aurais besoin d'écrit un script powershell qui liste tout les documents posté sur le portail sharepoint.

    pour l'instant j'en suis là pour savoir ce qui est posté sur la library operateur par exemple, mais je ne sais pas comment faire en suite : 

    Code :
    $site = "test";
     
    $web = get-SPWeb "http://monsitelocale.fr/$site"
     
     
    $op = $web.getList("/$site/oprateur")
     
    $op......
    Je pensais à un truc du genre $op.getAllDocuments, mais je ne trouve pas l'équivalent.
    Quelqu'un a une idée?

    Merci
    mercredi 30 mars 2011 12:37

Réponses

  • je lance bien le script : 

     

    function Get-DocInventory() {

        [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

        $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local

        foreach ($spService in $farm.Services) {

            if (!($spService -is [Microsoft.SharePoint.Administration.SPWebService])) {

                continue;

            }

     

            foreach ($webApp in $spService.WebApplications) {

                if ($webApp -is [Microsoft.SharePoint.Administration.SPAdministrationWebApplication]) { continue }

     

                foreach ($site in $webApp.Sites) {

                    foreach ($web in $site.AllWebs) {

                        foreach ($list in $web.Lists) {

                            if ($list.BaseType -ne "DocumentLibrary") {

                                continue

                            }

                            foreach ($item in $list.Items) {

                                $data = @{

                                    "Web Application" = $webApp.ToString()

                                    "Site" = $site.Url

                                    "Web" = $web.Url

                                    "list" = $list.Title

                                    "Item ID" = $item.ID

                                    "Item URL" = $item.Url

                                    "Item Title" = $item.Title

                                    "Item Created" = $item["Created"]

                                    "Item Modified" = $item["Modified"]

                                    "File Size" = $item.File.Length/1KB

                                }

                                New-Object PSObject -Property $data

                            }

                        }

                        $web.Dispose();

                    }

                    $site.Dispose()

                }

            }

        }

    }

    Get-DocInventory | Out-GridView

     

    mais il ne renvoit rien

    • Marqué comme réponse jeystyle mercredi 30 mars 2011 13:17
    mercredi 30 mars 2011 13:11
  • ça y es ça marche nikel, il suffisait de relancer powershell en fait.

    Merci beaucoup 

    • Marqué comme réponse jeystyle mercredi 30 mars 2011 14:57
    mercredi 30 mars 2011 14:57

Toutes les réponses

  • Quelque chose comme ça?

    http://blog.falchionconsulting.com/index.php/2010/08/getting-an-inventory-of-all-sharepoint-documents-using-windows-powershell/


    Pascal P
    http://sharepoint-afterwork.com
    http://pascalp.dotnet-france.com/
    Twitter: @PascalPoeck
    • Proposé comme réponse Pascal P mercredi 30 mars 2011 15:28
    mercredi 30 mars 2011 12:55
  • Bonjour, oui merci un truc comme ça justement.

    Je viens de le tester et là j'ai le msg suivant : 

     

    Out-GridView : To use the Out-GridView cmdlet, install the Windows PowerShell I

    ntegrated Scripting Environment feature from Server Manager. (Could not load fi

    le or assembly 'Microsoft.PowerShell.GraphicalHost, Version=1.0.0.0, Culture=ne

    utral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system

     

    Donc ma question est la suivante, comment installer le powershell integrated Scripting environment feature à partir du server manager?

    merci

    mercredi 30 mars 2011 13:06
  • je lance bien le script : 

     

    function Get-DocInventory() {

        [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

        $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local

        foreach ($spService in $farm.Services) {

            if (!($spService -is [Microsoft.SharePoint.Administration.SPWebService])) {

                continue;

            }

     

            foreach ($webApp in $spService.WebApplications) {

                if ($webApp -is [Microsoft.SharePoint.Administration.SPAdministrationWebApplication]) { continue }

     

                foreach ($site in $webApp.Sites) {

                    foreach ($web in $site.AllWebs) {

                        foreach ($list in $web.Lists) {

                            if ($list.BaseType -ne "DocumentLibrary") {

                                continue

                            }

                            foreach ($item in $list.Items) {

                                $data = @{

                                    "Web Application" = $webApp.ToString()

                                    "Site" = $site.Url

                                    "Web" = $web.Url

                                    "list" = $list.Title

                                    "Item ID" = $item.ID

                                    "Item URL" = $item.Url

                                    "Item Title" = $item.Title

                                    "Item Created" = $item["Created"]

                                    "Item Modified" = $item["Modified"]

                                    "File Size" = $item.File.Length/1KB

                                }

                                New-Object PSObject -Property $data

                            }

                        }

                        $web.Dispose();

                    }

                    $site.Dispose()

                }

            }

        }

    }

    Get-DocInventory | Out-GridView

     

    mais il ne renvoit rien

    • Marqué comme réponse jeystyle mercredi 30 mars 2011 13:17
    mercredi 30 mars 2011 13:11
  • L'installation de la feature se fait au niveau de votre serveur Windows comme illustré dans le liens suivant : http://jigar-mehta.blogspot.com/2010/06/how-to-install-windows-powershell.html

    Votre problème est-il résolu? Vous marquer votre post comme "Réponse" mais finissez par "mais il ne renvoit rien", ce qui est un peu contradictoire ;)


    Pascal P
    http://sharepoint-afterwork.com
    http://pascalp.dotnet-france.com/
    Twitter: @PascalPoeck
    mercredi 30 mars 2011 13:30
  • oui pardon, en fait j'ai réussi à installer powershell ISE, cependant lorsque je lance le script précedent il ne renvoit rien du tout.
    mercredi 30 mars 2011 13:42
  • Etrange, chez moi cela fonctionne parfaitement...

    1) J'ai fait un copier/coller du script dans un document notepad

    2) renommer le document en list.ps1

    3) lancer le script en tapant la commande .\list.ps1 dans le "SharePoint Management Shell"

    et voilà. Aucune modif sur le script et je retrouve bien tous les documents sur ma ferme SharePoint...

    Avez-vous bien lancer le script à partir du "SharePoint Management Shell"???


    Pascal P
    http://sharepoint-afterwork.com
    http://pascalp.dotnet-france.com/
    Twitter: @PascalPoeck
    mercredi 30 mars 2011 14:38
  • ça y es ça marche nikel, il suffisait de relancer powershell en fait.

    Merci beaucoup 

    • Marqué comme réponse jeystyle mercredi 30 mars 2011 14:57
    mercredi 30 mars 2011 14:57