Búsqueda de sitios web

Forzar la eliminación de colecciones de sitios dañadas en SharePoint mediante PowerShell


¡Hoy hay un problema extraño en el entorno de SharePoint 2013! No se puede acceder a una de las colecciones de sitios proporcionadas mediante un código personalizado y aparece el error "404 página no encontrada". Sin embargo, el sitio en particular aparece en la administración central >> ¡Ver todas las colecciones de sitios! Pero no hay más detalles disponibles, como la base de datos de contenido, etc., para la colección de sitios en la Administración central.

Llegamos a la conclusión de que la colección de sitios está "dañada". Hay muchos escenarios en los que un sitio puede dañarse, como: falla del medio de almacenamiento, problemas de conectividad de red, uso incorrecto de cmdlets de PowerShell (por ejemplo, si usa Copy-SPSite sin el parámetro "DestinationDatabase", terminará en un sitio corrupto!), etc.

Entonces, intentamos eliminar la colección de sitios del administrador central de SharePoint, pero la administración central de SharePoint no me permitió seleccionar ni eliminar el sitio. Probé STSADM -o DeleteSite y Remove-SPSite ¡Cmdlet de PowerShell sin suerte!

Los métodos de Stsadm y PowerShell dieron como resultado un error: 0x80070003

Solución: ¿Cómo eliminar colecciones de sitios dañadas en SharePoint?

Podemos eliminar colecciones de sitios corruptas con STSADM o PowerShell con los siguientes métodos.

STSADM para eliminar la colección de sitios corruptos:
Paso 1: Necesitamos los parámetros de ID del sitio, servidor de base de datos y nombre de la base de datos del sitio que necesitamos eliminar. Ejecutar:

stsadm -o EnumAllWebs > SitesList.xml

Esto produce un archivo XML con detalles como ID de colección de sitios, base de datos de contenido, servidor de base de datos, etc., como se muestra a continuación.

Paso 2: Extraiga los valores de los parámetros requeridos y proporciónelos a STSADM -o DeleteSite como:

stsadm -o deletesite -force -siteid “1252fd8f-a0ea-4ef9-9b66-4715f8e44b37” -databaseserver SP13-Ent-SQL01 -databasename SP13_Intranet_Content

El mismo método se aplica también al sitio web dañado. Por ejemplo:
stsadm -o deleteweb -force -webid -databasename -databaseserver

Eliminar la colección de sitios corruptos con PowerShell:

Utilice este script de PowerShell para eliminar una colección de sitios dañada en SharePoint.


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

$CorruptedSiteURL ="https://intranet.crescent.com/sites/sales"

#Get the site collection
$site = Get-SPSite $CorruptedSiteURL

#Get the GUID of the site collection
$siteGUID = $site.Id
Write-host "Site collection GUID:"$siteGUID

#Get the content Database of the Site collection
$siteDatabase = $site.ContentDatabase 

#Force delete the site collection
$siteDatabase.ForceDeleteSite($siteGUID, $false, $false)

Artículos relacionados