Búsqueda de sitios web

SharePoint Online: eliminar elementos de la lista creados en los últimos 7 días usando PowerShell


Requisito: Eliminar todos los elementos de la lista creados en los últimos 7 días en la lista de SharePoint Online.

PowerShell para eliminar elementos de la lista de SharePoint Online según la fecha de creación

¿Está buscando una manera de eliminar rápidamente todos los elementos de la lista que se crearon en los últimos 7 días? ¡PowerShell puede ayudar! En esta guía, le mostraremos cómo usar PowerShell para eliminar todos los elementos de su lista anterior:

Puede usar PowerShell para eliminar elementos de una lista de SharePoint Online que se crearon en los últimos X días mediante el siguiente script. Este script se conecta al sitio de SharePoint Online y recupera los elementos de la lista especificada mediante el modelo de objetos del lado del cliente (CSOM) de SharePoint. Luego, la consulta CAML se utiliza para recuperar solo los elementos creados en los últimos X días. Finalmente, el script recorre cada elemento y lo elimina, lo que proporciona una forma cómoda y automatizada de eliminar elementos más antiguos de los datos de su lista de SharePoint.


#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"
$UserName = "Salaudeen@CrescentTech.com"
$Password = "Password Goes Here"
$SecurePassword= $Password | ConvertTo-SecureString -AsPlainText -Force
 
#Setup the Context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
 
#Get the List
$List = $Ctx.Web.Lists.GetByTitle("Documents")

#Query to Get All List Items Created in the Past 7 Days
$CAMLQuery = New-Object Microsoft.SharePoint.Client.CamlQuery
$Query = "@
<View Scope='RecursiveAll'>
    <Query>        
        <Where>
                <Geq>
                    <FieldRef Name='Created' />
                         <Value Type='DateTime'><Today OffsetDays='-7'/></Value>
                </Geq>
        </Where>
    </Query>
</View>"
$CAMLQuery.ViewXml =$Query

#Get List Items matching given conditions
$ListItems = $List.GetItems($CAMLQuery)
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()

#Delete List Items
Write-host "Total Number of Items Matching:"$ListItems.Count
Foreach ($Item in $ListItems)
{
    $List.GetItemById($Item.id).Recycle() | Out-null
    Write-host "Deleted List Item:"$Item.Id
}
$Ctx.ExecuteQuery()

PnP PowerShell para eliminar elementos de la lista creados en los últimos 7 días:

Si bien el método CAML para filtrar elementos de la lista es el enfoque recomendado, aquí hay un enfoque alternativo para eliminar elementos de la lista creados en los últimos N días.


#Variables
$SiteURL = "https://crescent.sharepoint.com"
$listName ="Documents"
$Days = -7
$UserName = "Salaudeen@TheCrescent.com"
$Password = "Password1"
$SecurePassword= $Password | ConvertTo-SecureString -AsPlainText -Force
$Cred = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $UserName, $SecurePassword

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred

#Get All List Items
$ListItems = Get-PnPListItem -List $ListName -Fields "Title","Created","ID","GUID" -PageSize 2000

#Set Cutoff Date - Past 7 days
$CutoffDate = (Get-Date).AddDays($Days)

ForEach($Item in $ListItems) 
{
    #Get the Created Date of the Item
    $CreatedDate = $Item["Created"]

    If($CreatedDate -ge $CutoffDate) 
    {
        Remove-PnPListItem -List $ListName -Identity $Item.Id -Force -Recycle
        Write-Host "Deleted List Item:"$Item.Id
    }
}

Reemplace el valor de las variables según su sitio, lista, etc. de SharePoint Online. La variable $Days determina la cantidad de días desde la fecha actual para eliminar elementos. En este ejemplo, se establece en 7 días.

Artículos relacionados