Búsqueda de sitios web

¿Cómo obtener todas las listas y bibliotecas del sitio de SharePoint Online usando PnP PowerShell?


Recientemente, estaba trabajando en un proyecto de migración de SharePoint Online, donde debíamos obtener todas las listas y bibliotecas de los sitios de SharePoint Online. Usé PnP PowerShell para esto. En este tutorial, le mostraré cómo obtener todas las listas y bibliotecas de un sitio de SharePoint Online usando PnP PowerShell.

Obtenga todas las listas y bibliotecas de un sitio de SharePoint Online usando PnP PowerShell

Para obtener todas las listas y bibliotecas de un sitio de SharePoint Online usando PnP PowerShell, puede usar el cmdlet Get-PnPList. Este comando devolverá todas las listas y bibliotecas del sitio de SharePoint.

A continuación se muestra el guión completo. Devolverá el título, la URL y la fecha de creación.

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
$lists = Get-PnPList
foreach ($list in $lists) {
    Write-Host "Name: $($list.Title)"
    Write-Host "URL: $($list.RootFolder.ServerRelativeUrl)"
    Write-Host "Created: $($list.Created)"
    Write-Host "-----------------------------"
}

Ejecuté el script anterior y puede ver que devuelve todas las listas y bibliotecas del sitio de SharePoint Online.

Los ejemplos anteriores no nos mostraron si se trata de una lista o una biblioteca. Si desea escribir, ya sea una lista o una biblioteca, puede modificar el script de PowerShell como el que se muestra a continuación.

Nota: El ID de plantilla para la lista es 100 y para la biblioteca, es 101.

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Retrieve all lists and libraries
$lists = Get-PnPList

# Function to determine type
function Get-ListType {
    param (
        [int]$baseTemplate
    )
    switch ($baseTemplate) {
        101 { return "Library" }
        100 { return "List" }
        default { return "Other" }
    }
}

# Display list details with type
foreach ($list in $lists) {
    $listType = Get-ListType -baseTemplate $list.BaseTemplate
    Write-Host "Name: $($list.Title)"
    Write-Host "URL: $($list.RootFolder.ServerRelativeUrl)"
    Write-Host "Type: $listType"
    Write-Host "Created: $($list.Created)"
    Write-Host "-----------------------------"
}

También puede ver el resultado en la captura de pantalla siguiente; muestra el tipo.

Consulte Copiar elementos de una lista a otra en SharePoint Online usando PnP PowerShell

Obtenga todas las listas en el sitio de SharePoint usando PnP PowerShell

A veces, es posible que necesite obtener todas las listas del sitio de SharePoint sin las bibliotecas. Entonces, aquí está el script de PowerShell para obtener todas las listas de un sitio de SharePoint usando PnP PowerShell.

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Retrieve all lists and libraries
$lists = Get-PnPList

$allLists = @()

foreach ($list in $lists) {
    if ($list.BaseTemplate -eq 100) {
        $allLists += $list
    } 
}

# Display all lists
Write-Host "Lists:"
foreach ($list in $allLists) {
    Write-Host "Name: $($list.Title)"
    Write-Host "URL: $($list.RootFolder.ServerRelativeUrl)"
    Write-Host "Created: $($list.Created)"
    Write-Host "-----------------------------"
}

Ejecuté el script PnP PowerShell anterior y puedes verlo mostrando todas las listas de mi sitio de SharePoint. También obtendrá el resultado exacto.

Consulte Recuperar un sitio de SharePoint Online usando PowerShell y PnP PowerShell

Obtenga todas las bibliotecas de un sitio de SharePoint Online usando PnP PowerShell

De esta misma manera, déjame mostrarte cómo obtener todas las bibliotecas de un sitio de SharePoint Online usando PnP PowerShell. Este también es un requisito muy común entre los desarrolladores de PowerShell SharePoint.

Aquí está el script completo para obtener todas las bibliotecas de documentos de SharePoint usando PnP PowerShell.

$siteUrl = "https://szg52.sharepoint.com/sites/PowerShellFAQs"
Connect-PnPOnline -Url $siteUrl -Interactive
# Retrieve all lists and libraries
$lists = Get-PnPList

$allLibraries = @()

foreach ($list in $lists) {
    if ($list.BaseTemplate -eq 101) {
        $allLibraries += $list
    } 
}

# Display all libraries
Write-Host "Libraries:"
foreach ($library in $allLibraries) {
    Write-Host "Name: $($library.Title)"
    Write-Host "URL: $($library.RootFolder.ServerRelativeUrl)"
    Write-Host "Created: $($library.Created)"
    Write-Host "-----------------------------"
}

Ejecuté el script de PowerShell anterior y puedes ver el resultado en la captura de pantalla a continuación.

Conclusión

En este tutorial, he explicado cómo obtener todas las listas y bibliotecas en SharePoint Online usando PnP PowerShell. Además, creé dos scripts diferentes:

  • Obtenga todas las listas de un sitio de SharePoint Online usando PnP PowerShell
  • Obtenga todas las bibliotecas de un sitio de SharePoint Online mediante PnP PowerShell.

Artículos relacionados