SharePoint Online: eliminación masiva de todos los elementos de la lista mediante PowerShell
Requisito: Eliminación masiva de elementos de la lista de SharePoint Online mediante PowerShell.
Eliminar todos los elementos de la lista en SharePoint Online usando PowerShell:
Tenemos una lista en SharePoint Online - sitio de Office 365 con un montón de elementos. Es necesario eliminarlos de forma masiva en lugar de eliminarlos uno por uno desde la interfaz de usuario web de SharePoint. Aquí está el script para eliminar elementos de la lista de forma masiva 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"
#Variables for Processing
$SiteUrl = "https://Crescent.sharepoint.com/sites/Marketing"
$ListName="LargeList"
$BatchSize = 100
#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 List
$List=$Ctx.web.Lists.GetByTitle($ListName)
$Ctx.Load($List)
$Ctx.ExecuteQuery()
Write-host "Total Number of Items Found in the List:"$List.ItemCount
Write-Host -f Yellow -NoNewline "Deleting List Items from List '$ListName'"
#Set a Flag
$Continue = $True
While($Continue)
{
Write-Host -NoNewline -f Yellow "."
#Get List Items in Batches
$Query = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery($BatchSize, "ID")
$ListItems = $List.GetItems($Query)
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()
If($ListItems.Count -gt 0)
{
#Delete List Items
for($i = $ListItems.Count-1; $i -ge 0; $i--)
{
$ListItems[$i].DeleteObject()
}
$Ctx.ExecuteQuery()
}
Else
{
$Continue = $False
}
}
Write-Host -f Green "`nAll List Items Deleted Successfully!"
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
Tenga en cuenta que estos elementos de la lista 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. Aquí hay otro PowerShell para eliminar todos los elementos de la lista en SharePoint Online: Eliminar todos los elementos de la lista de SharePoint Online usando PowerShell
