En esta ocasión os dejo un script PowerShell que os permite borrar de forma recursiva los sitios de una colección de sitios. Como veis, se trata de hacer uso de Remove-SPWeb teniendo cuidado de no borrar el sitio raíz de la colección.
1: If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null )
2: { Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell }
3:
4: #Hacemos un buen uso de PowerShell para no penalizar el rendimiento
5: $host.Runspace.ThreadOptions = "ReuseThread"# Se crea el la aplicación del portal
6:
7: #Definición de la función
8: function Delete-Sites([Microsoft.SharePoint.SPWeb] $spWeb)
9: {
10:
11: $spsubWebs = $spWeb.GetSubwebsForCurrentUser()
12:
13: foreach($spsubWeb in $spsubWebs)
14: {
15: Delete-Sites($spsubWeb)
16: $spsubWeb.Dispose()
17: }
18:
19: #Borra,os los subsitios mientras no estemos en el sitio raíz
20: if($spWeb.Url -ne $sSiteCollUrl)
21: {
22: Write-Host -f blue "Eliminado el sitio ($($spWeb.Url))..."
23: #Borramos el objeto SPWeb del último nivel
24: Remove-SPWeb $spWeb -Confirm:$false
25: }
26: }
27:
28: Start-SPAssignment –Global
29: #Parámetros necesarios y llamada a la función
30: $sSiteCollUrl = “http://<UrlColeccion>”
31: $spSite = Get-SPSite -Identity $sSiteCollUrl
32: $spWeb = $spSite.OpenWeb()
33:
34: #Llamada a la función
35: if($spWeb -ne $null)
36: {
37: Delete-Sites $spWeb
38: $spWeb.Dispose()
39: }
40:
41: $spSite.Dispose()
42:
43: Stop-SPAssignment –Global
44:
Espero que este script os sirva de utilidad.