2015-09-30

Recently, I had a task to create a list of all documents uploaded into a certain SharePoint site. You might that this isn’t a hard task, but, when you have dozens of libraries all containing hundreds of documents things can get complicated.

To help me, I created a function called Get-Documents which which can be seen below :

function Get-Documents ()
    {
    Add-PSSnapin Microsoft.SharePoint.PowerShell
    $web = get-spweb (Read-Host "Enter Site URL")
        foreach ($list in $web.Lists) 
            {
            if ($list.BaseType -eq "DocumentLibrary") 
                {
                foreach ($item in $list.Items) 
                    {
                    $data = @{
                
                                "Web" = $web.Url
                                "list" = $list.Title
                                "Item ID" = $item.ID
                                "Item URL" = $item.Url
                                "Item Title" = $item.Title
                                "Item Name" = $item.Name
                                "Item Created" = $item["Created"]
                                "Item Modified" = $item["Modified"]
                                "File Size" = $item.File.Length/1KB
                            }
                    New-Object PSObject -Property $data
                    }
                }
            $web.Dispose();
            }
    }

Get-Documents | Out-GridView
#Get-Documents | Export-Csv -NoTypeInformation -Path c:\temp\inventory.csv

This function extracts all relevant (for me) information about each document, (from all document libraries) and output’s it into a custom object.

Later you can take results and put it in grid view or export it to csv file. In my example, I output the list of SharePoint documents to a CSV file called “Inventory.csv”

About the author 

Krsto Savic