Búsqueda de sitios web

Obtenga la URL de todos los archivos en la biblioteca de documentos de SharePoint Online usando PowerShell


Requisito: Obtenga la URL de todos los archivos en una biblioteca de documentos de SharePoint Online mediante PowerShell.

Obtenga las URL de todos los archivos en una biblioteca de documentos de SharePoint Online mediante PowerShell CSOM

¿Está buscando una secuencia de comandos de PowerShell para obtener la URL de todos los archivos de una carpeta en SharePoint Online? Puede resultar útil obtener una lista de todas las URL de archivos para diversos fines, como informes, migración o auditoría. En este artículo, veamos cómo obtener la URL de todos los archivos en una biblioteca de documentos de SharePoint Online usando PowerShell.

Bueno, aquí está el script de PowerShell para obtener una lista de todos los archivos y sus URL en una carpeta específica utilizando el modelo de objetos del lado del cliente.


#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 para obtener la URL del archivo en SharePoint Online

Si está buscando una secuencia de comandos de PowerShell para recopilar las URL de todos los archivos en una carpeta determinada en SharePoint Online, ¡no busque más! Permítame mostrarle cómo usar PnP PowerShell para obtener rápidamente las URL de todos los archivos en una carpeta.


#Set Variables
$SiteURL= "https://crescent.sharepoint.com/sites/Marketing"
$ListName="Documents"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#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
$Results=@()
ForEach($Item in $ListItems)
{
    $Results += New-Object PSObject -Property @{
    FileName = $Item.FieldValues['FileLeafRef']
    FileURL = $Item.FieldValues['FileRef']
    }
}
$Results

Aquí hay otra publicación: ¿Cómo usar PowerShell para obtener todos los archivos de una carpeta en SharePoint Online?

Artículos relacionados