Get URL of All Files in SharePoint Online Document Library using PowerShell

Requirement: Get the URL of All Files in a SharePoint Online Document Library using PowerShell

Get URLs of All Files in a SharePoint Online Document Library using PowerShell CSOM
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
    
#Set Variables
$SiteURL= "https://crescent.sharepoint.com/sites/Marketing"
$ListName="Documents"
  
#Setup Credentials to connect
$Cred = Get-Credential
  
Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

    #Get the Web
    $Web = $Ctx.Web
    $Ctx.Load($Web)
    $Ctx.ExecuteQuery()  

    #Get All Items from the List
    $List = $Ctx.web.Lists.GetByTitle($ListName)
    $ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) 
    $Ctx.Load($ListItems)
    $Ctx.ExecuteQuery()
           
    $DataCollection = @()
    #Loop through each item 
    ForEach($ListItem in $ListItems)
    {
        #Calculate Absolute URL
        If($Web.ServerRelativeUrl -eq "/")
        {
            $AbsoluteURL=  $("{0}{1}" -f $Web.Url, $ListItem.FieldValues["FileRef"])
        }
        else
        {
            $AbsoluteURL=  $("{0}{1}" -f $Web.Url.Replace($Web.ServerRelativeUrl,''), $ListItem.FieldValues["FileRef"])
        } 

        #Collect data        
        $Data = New-Object PSObject -Property @{
            FileName  = $ListItem.FieldValues["FileLeafRef"]
            RelativeURL = $ListItem.FieldValues["FileRef"]
            AbsoluteURL = $AbsoluteURL
        }
        $DataCollection += $Data
    }
    $DataCollection | Format-List
}
Catch {
    write-host -f Red "Error: " $_.Exception.Message
}

PnP PowerShell to Get File URL in SharePoint Online
#Set Variables
$SiteURL= "https://crescent.sharepoint.com/sites/Marketing"
$ListName="Documents"

#Connect to PNP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get All Items from the list - In batches of 500
$ListItems = Get-PnPListItem -List $ListName -PageSize 500

#Loop through List Items and Get File URL
[email protected]()
ForEach($Item in $ListItems)
{
    $Results += New-Object PSObject -Property @{
    FileName = $Item.FieldValues['FileLeafRef']
    FileURL = $Item.FieldValues['FileRef']
    }
}
$Results

No comments:

Please Login and comment to get your questions answered!

Powered by Blogger.