You need to delete SharePoint items older than date? It's easy with PowerShell.
Start Sharepoint Management Shell as Administrator
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Configure target site and list.
$list = $($(Get-SPWeb -Identity 'https://portal/test').Lists['ListName'])
#Index count for list items.
$index = $list.ItemCount
#Index counter for paging.
$page = 0
#Configure how many items to delete per batch.
$pagesize = 3000
#Configure how may seconds to pause between batches.
$sleep = 1
#Turn verbose output on/off
$verbose = $true
While($index -ge 0){
if($verbose){
$("Check item at index $($index).")
}
if($page -lt $pagesize){
try{
if($($list.Items[$index])['DateField'] -lt [DateTime]::Parse("11/7/2017")){
$list.Items[$index].Delete()
write-host "Deleting item at index $($index)." -foregroundcolor "green"
}
}
catch [System.Exception]{
if($verbose){
$("Skipping item at index $($index).")
}
}
$index--
$page++
}
else{
if($verbose){
$("Sleeping for $($sleep) seconds.")
}
[System.Threading.Thread]::Sleep($sleep * 1000)
$page = 0
}
}
Start Sharepoint Management Shell as Administrator
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Configure target site and list.
$list = $($(Get-SPWeb -Identity 'https://portal/test').Lists['ListName'])
#Index count for list items.
$index = $list.ItemCount
#Index counter for paging.
$page = 0
#Configure how many items to delete per batch.
$pagesize = 3000
#Configure how may seconds to pause between batches.
$sleep = 1
#Turn verbose output on/off
$verbose = $true
While($index -ge 0){
if($verbose){
$("Check item at index $($index).")
}
if($page -lt $pagesize){
try{
if($($list.Items[$index])['DateField'] -lt [DateTime]::Parse("11/7/2017")){
$list.Items[$index].Delete()
write-host "Deleting item at index $($index)." -foregroundcolor "green"
}
}
catch [System.Exception]{
if($verbose){
$("Skipping item at index $($index).")
}
}
$index--
$page++
}
else{
if($verbose){
$("Sleeping for $($sleep) seconds.")
}
[System.Threading.Thread]::Sleep($sleep * 1000)
$page = 0
}
}
No comments:
Post a Comment