SharePoint Online: eliminar un elemento de lista usando PowerShell
Requisito: Eliminar un elemento de lista en SharePoint Online mediante PowerShell.
En esta publicación de blog, le mostraremos cómo usar PowerShell para eliminar un elemento de la lista de SharePoint Online. Compartiremos algunos ejemplos de PowerShell para eliminar un elemento de la lista por ID, eliminar un elemento de la lista por título y eliminar elementos de la lista que coincidan con condiciones determinadas. Seguiremos los pasos necesarios para conectarnos a PowerShell y luego eliminar un elemento de una lista. ¡Empecemos!
¿Cómo eliminar un elemento de lista en SharePoint Online?
Para eliminar un elemento de la lista de SharePoint Online, haga lo siguiente:
- Busque su lista y seleccione el elemento que desea eliminar.
Haga clic en el botón "Eliminar" en la barra de menú de la lista.
- Confirme el mensaje. El artículo seleccionado será enviado a la papelera de reciclaje.
También puede eliminar el elemento de la lista haciendo clic derecho sobre él y seleccionando "Eliminar" en el menú contextual.
SharePoint Online PowerShell para eliminar elementos de la lista
PowerShell es una herramienta versátil que se puede utilizar para administrar y automatizar tareas en SharePoint Online. Veamos cómo usar PowerShell para eliminar un elemento de la lista. Esto puede resultar útil si necesita eliminar rápidamente algunos datos de una lista o algo de la lista que ya no necesita. Aquí está mi script de PowerShell para eliminar un elemento de la lista de SharePoint Online:
#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"
Function Delete-ListItem()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $ListName,
[Parameter(Mandatory=$true)] [string] $ItemID
)
Try {
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the List and item
$List = $Ctx.Web.Lists.GetByTitle($ListName)
$ListItem = $List.GetItemById($ItemID)
$ListItem.DeleteObject()
$Ctx.ExecuteQuery()
Write-Host "List Item Deleted successfully!" -ForegroundColor Green
}
Catch {
write-host -f Red "Error Deleting List Item!" $_.Exception.Message
}
}
#Parameters
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
$ItemID="1"
#Call the function to rename column
Delete-ListItem -SiteURL $SiteURL -ListName $ListName -ItemID $ItemID
SharePoint Online: eliminación masiva de elementos de la lista que coinciden con la condición dada
¿Cómo eliminar de forma masiva elementos de la lista de SharePoint Online usando PowerShell? Digamos que queremos eliminar todos los proyectos inactivos de la lista "Proyectos".
#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"
Function Delete-ListItems()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $ListName,
[Parameter(Mandatory=$true)] [string] $CAMLQuery
)
Try {
$Cred= Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Define Query to get List Items
$Query = New-Object Microsoft.SharePoint.Client.CamlQuery
$Query.ViewXml =$CAMLQuery
#Get the List
$List = $Ctx.Web.Lists.GetByTitle($ListName)
#Get All List Items matching the query
$ListItems = $List.GetItems($Query)
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()
Write-host "Total Number of Items Found to delete: $($ListItems.count)"
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 "List Items Deleted successfully!" -ForegroundColor Green
}
}
Catch {
write-host -f Red "Error Deleting List Items!" $_.Exception.Message
}
}
#Parameters
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
$CAMLQuery="<View><Query><Where><Eq><FieldRef Name='IsActive' /><Value Type='Boolean'>0</Value></Eq></Where></Query></View>"
#Call the function to rename column
Delete-ListItems -SiteURL $SiteURL -ListName $ListName -CAMLQuery $CAMLQuery
PnP PowerShell para eliminar un elemento de lista en SharePoint Online
Para eliminar un elemento de lista en particular por su ID, use este cmdlet PnP PowerShell Remove-PnPListItem:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ListName ="Projects"
$ListItemID=7
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Remove List Item by ID
Remove-PnPListItem -List $ListName -Identity $ListItemID -Recycle -Force
Eliminar elemento de lista por título en SharePoint Online usando PnP PowerShell
De manera similar, puede eliminar elementos de la lista según los valores de los campos de filtrado. ¡También puede usar el cmdlet Move-PnPListItemToRecycleBin para mover un elemento de la lista a la papelera de reciclaje!
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ListName ="Projects"
$ListItemTitle="SharePoint Online Migration Project"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get the List Item by "Title" field value
$Query = "<View><Query><Where><Eq><FieldRef Name='Title'/><Value Type='Text'>$ListItemTitle</Value></Eq></Where></Query></View>"
$ListItem = Get-PnPListItem -List $ListName -Query $Query -PageSize 1
#Removes the List item
If($ListItem -ne $null)
{
Remove-PnPListItem -List $ListName -Identity $ListItem -Force
}
¿Cómo elimino todos los elementos de una lista de SharePoint en PowerShell? Si desea eliminar todos los elementos de la lista de SharePoint Online usando PowerShell, use: SharePoint Online: Eliminar todos los elementos de la lista usando PowerShell

