8 juin 2010

Powershell / Suppression des éléments d'une liste WSS ou Sharepoint

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