Ci-dessous un script Powershell permettant de vider une liste d’éléments WSS. Ce script a été testé avec succès sur une plateforme virtuelle WSS 2.0 (90 000 lignes, deux semaines de temps traitement !!). Ce script fonctionne aussi sur WSS 3.
function DeleteListItems([string]$SiteURL, [string]$ListName)
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
$site = new-object Microsoft.SharePoint.SPSite($SiteURL)
$web = $site.openweb()
Write-Output get-date
Write-Output "Web URL: ", $web.URL
Write-Output "Web Title: ", $web.Title
$myList = $web.Lists[$ListName]
Write-Output "List Title: ", $myList.Title
$collListItems = $myList.Items
$y=$myList.Items.Count-1
for ($y; $y -gt -1; $y--)
{
#Get Item
$myItem=$collListItems.Item($y)
Write-Host "deleting item ID", $myItem.ID, $y, "..."
Write-Output "deleting item ID", $myItem.ID, $y, "..."
$myList.Items.Delete($y)
}
}
$_SiteURL="http://mywsssite/"
$_ListName ="Events"
DeleteListItems $_SiteURL $_ListName