Búsqueda de sitios web

SharePoint Online: eliminar todos los elementos de la lista usando PowerShell


Requisito: Eliminar todos los elementos de la lista de SharePoint Online mediante PowerShell.

Tenemos una lista en SharePoint Online - sitio de Office 365 con un montón de elementos y necesitamos eliminarlos de forma masiva en lugar de eliminarlos uno por uno desde la interfaz de usuario web de SharePoint. Entonces, usemos SharePoint Online PowerShell para eliminar todos los elementos de la lista. Esta publicación de blog le mostrará cómo usar PowerShell para eliminar todos los elementos de la lista en un sitio de SharePoint Online.

SharePoint Online: ¿Cómo eliminar todos los elementos de una lista?

Las listas son un componente central de SharePoint Online y brindan a los usuarios una forma flexible y personalizable de almacenar y administrar datos. Sin embargo, puede haber ocasiones en las que necesite eliminar elementos de una lista, ya sea para limpiar datos antiguos o por otros motivos.

¿Cómo eliminar todos los elementos de la lista en SharePoint Online? Para eliminar todos los elementos de una lista de SharePoint Online, haga lo siguiente:

  1. Busque su lista y seleccione todos los elementos de la lista marcando la casilla de verificación junto a la primera columna de la lista. Esto debería resaltar todos los elementos en la vista de lista.
  2. Haga clic en el botón "Eliminar" en la barra de menú de la lista.

  3. Confirme el mensaje. El artículo seleccionado será enviado a la papelera de reciclaje.

¡SharePoint le permite seleccionar 100 elementos a la vez! Sin embargo, en las listas modernas, puede seleccionar todos los elementos desplazándose hasta la parte inferior de la página, para que SharePoint cargue y seleccione los elementos restantes. ¿Qué pasa si tienes una lista significativamente más grande? Bueno, ¡PowerShell ahorra tiempo aquí!

Si no aparecen las casillas de verificación, edite la vista de lista >> En la sección Vista tabular, asegúrese de que esté seleccionado "Permitir casillas de verificación de elementos individuales".

Eliminar todos los elementos de la lista de forma masiva en SharePoint Online usando PowerShell:

Si administra SharePoint Online, es muy probable que necesite realizar eliminaciones masivas en algún momento. Esta publicación de blog le mostrará cómo usar PowerShell para realizar una eliminación masiva de elementos en una lista de SharePoint Online. Aquí está el script para eliminar todos los elementos de la lista en SharePoint Online Office 365 usando el modelo de objetos del lado del cliente (CSOM) con PowerShell.


#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"
  
#Parameters
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"

#Get Credentials to connect 
$Cred = Get-Credential

#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 List items to delete
$List = $Ctx.web.Lists.GetByTitle($ListName)
$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) 
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()       
 
write-host "Total Number of List Items found:"$ListItems.Count
 
#SharePoint Online PowerShell to delete all list items
If($ListItems.Count -gt 0)
{
    #Loop through each item and delete
    For($i = $ListItems.Count-1; $i -ge 0; $i--)
    {
        $ListItems[$i].DeleteObject()
    } 
    $Ctx.ExecuteQuery()
         
    Write-Host "All List Items deleted Successfully!"
} 

Este script de PowerShell elimina todos los elementos de la lista de SharePoint Online. Tenga en cuenta que estos elementos no se mueven a la Papelera de reciclaje, sino que se eliminan permanentemente. Este script de PowerShell podría resultar muy útil a la hora de eliminar elementos masivos de una lista enorme.

PowerShell para eliminar todos los elementos de listas grandes en SharePoint Online

Cuando tiene una lista o biblioteca de SharePoint con una mayor cantidad de elementos (>5000), puede enfrentar un mensaje "El intento de operación está prohibido porque excede el umbral de vista de lista impuesto por el administrador". error. Entonces, para mitigar este problema, eliminemos la lista de elementos del lote. Aquí está mi script de PowerShell para eliminar elementos de la lista en el lote.


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"
    
#Config Parameters
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
$BatchSize = 500
  
#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 and List
    $Web = $Ctx.Web
    $List=$web.Lists.GetByTitle($ListName)
    $Ctx.Load($List)
    $Ctx.ExecuteQuery()
    Write-host "Total Number of Items Found in the List:"$List.ItemCount
 
    #Define CAML Query to get list items in batches
    $Query = New-Object Microsoft.SharePoint.Client.CamlQuery
    $Query.ViewXml = "<View Scope='RecursiveAll'><RowLimit Paged='TRUE'>$BatchSize</RowLimit></View>"
 
    Do {  
        #Get items from the list in batches
        $ListItems = $List.GetItems($Query)
        $Ctx.Load($ListItems)
        $Ctx.ExecuteQuery()
         
        #Exit from Loop if No items found
        If($ListItems.count -eq 0) { Break; }
 
        Write-host Deleting $($ListItems.count) Items from the List...
 
        #Loop through each item and delete
        ForEach($Item in $ListItems)
        {
            #Delete SharePoint list items
            $List.GetItemById($Item.Id).DeleteObject()
        } 
        $Ctx.ExecuteQuery()
 
    } While ($True)
 
    Write-host -f Green "All Items Deleted!"
}
Catch {
    write-host -f Red "Error Deleting List Items!" $_.Exception.Message
}

Este script elimina todos los elementos de la lista en SharePoint Online mediante PowerShell.

El método “DeleteObject()” elimina permanentemente el elemento. Utilice "Reciclar()" para enviar el artículo a la papelera de reciclaje.

SharePoint Online PnP PowerShell para eliminar todos los elementos de la lista

Aquí está el PnP PowerShell para vaciar la lista en SharePoint Online.


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
$ListName ="Records"

#Get Credentials to connect
$Cred = Get-Credential

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Credentials $Cred
    
    #Get All List Items in Batch
    $ListItems = Get-PnPListItem -List $ListName -PageSize 1000 | Sort-Object ID -Descending

    #sharepoint online powershell delete all items in a list
    ForEach ($Item in $ListItems)
    {
        Remove-PnPListItem -List $ListName -Identity $Item.Id -Force
    }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Utilice el parámetro -Recycle para enviar los elementos a la papelera de reciclaje en lugar de eliminarlos permanentemente.

Una forma más rápida de eliminar elementos de la lista de forma masiva

Los métodos anteriores son lentos y eliminan un elemento en 1 segundo aproximadamente. Sin embargo, el método de bloque de secuencias de comandos siguiente elimina los elementos más rápido.


Get-PnPList -Identity $ListName | Get-PnPListItem -PageSize 100 -ScriptBlock { 
    Param($items) Invoke-PnPQuery } | ForEach-Object {$_.Recycle()
 }

Borrar elementos de lista en SharePoint Online más rápido con el método por lotes PnP

El método New-PnPBatch realiza operaciones masivas relativamente más rápido. A continuación se muestra un ejemplo de cómo eliminar todos los elementos con el método PnP Batch.


$SiteURL = "https://crescent.sharepoint.com/sites/Operations"
$ListName = "Inventory"

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

#Get List Items to Delete
$ListItems =  Get-PnPListItem -List $ListName -PageSize 500

#Create a New Batch
$Batch = New-PnPBatch

#Clear All Items in the List
ForEach($Item in $ListItems)
{    
     Remove-PnPListItem -List $ListName -Identity $Item.ID -Recycle -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

Terminando

En resumen, siguiendo los pasos descritos en este artículo, puede eliminar fácilmente todos los elementos de la lista de SharePoint Online usando PowerShell. Este enfoque puede ayudarle a ahorrar tiempo y esfuerzo, y garantizar que sus datos se administren de manera efectiva, especialmente cuando tiene una lista grande con muchos elementos. Para eliminar todos los archivos de una biblioteca de documentos de SharePoint Online, utilice: SharePoint Online: eliminar todos los archivos de una biblioteca de documentos mediante PowerShell

Preguntas frecuentes:

¿Cómo elimino un archivo de SharePoint Online en PowerShell?

Para eliminar un archivo de SharePoint Online en PowerShell, puede usar el cmdlet Remove-PnPFile del módulo de PowerShell Patrones y prácticas de SharePoint (PnP). A continuación se muestra un script de PowerShell de ejemplo que elimina un archivo de una biblioteca de documentos en SharePoint Online: Remove-PnPFile -ServerRelativeUrl “/sites/yoursite/Shared Documents/yourfile.docx”

¿Cómo elimino una carpeta en OneDrive usando PowerShell?

Utilice el cmdlet Remove-PnPFolder en PnP Powershell para eliminar una carpeta en OneDrive para la Empresa. Por ejemplo,
Conectar-PnPOnline -Url “https://Crescent-my.sharepoint.com/personal/salaudeen_Crescent_com” -Interactivo
Eliminar-PnPFolder -Nombre “Copia de seguridad” -Carpeta “Documentos”

¿Cómo elimino una biblioteca de documentos en SharePoint Online?

Para eliminar una biblioteca de documentos en SharePoint Online, puede usar la interfaz web de SharePoint Online o PowerShell.
Para eliminar una biblioteca de documentos en SharePoint Online mediante la interfaz web, siga estos pasos: Navegue hasta el sitio de SharePoint y la biblioteca de documentos que desea eliminar. Haga clic en el ícono de ajustes de configuración en la esquina superior derecha y seleccione "Configuración de biblioteca" en el menú desplegable. Haga clic en "Más configuraciones de biblioteca" y luego en el enlace "Eliminar esta biblioteca de documentos" en la configuración de la biblioteca de documentos. También puede eliminar una biblioteca de documentos en SharePoint Online usando el cmdlet de PowerShell usando Remove-PnPList.
Más información: ¿Cómo eliminar una biblioteca de documentos en SharePoint Online?

¿Cómo elimino una lista de SharePoint en PowerShell?

Para eliminar una lista usando PowerShell, use: Remove-PnPList -Identity “List Name” -Force
Más información: ¿Cómo eliminar una lista en SharePoint Online usando PowerShell?

Artículos relacionados