Obtenga todas las colecciones de sitios de SharePoint desde una base de datos de contenido mediante PowerShell
Durante las auditorías/migraciones, teníamos el requisito de generar informes sobre las bases de datos de contenido de SharePoint y una lista de colecciones de sitios que se encuentran en cada base de datos de contenido.
Script de PowerShell para obtener todas las bases de datos de contenido y sus colecciones de sitios:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Get all SharePoint content databases available
$ContentDatabases = Get-SPContentDatabase
#Loop through each content database
foreach($ContentDb in $ContentDatabases)
{
Write-Host "`nContent Database Name: $($ContentDb.Name) Size:$($ContentDb.DiskSizeRequired/1MB) MB " -ForegroundColor DarkGreen
#Get all site collections in the content database
Write-Host "Site Collections List:" -ForegroundColor Blue
foreach($site in $ContentDb.Sites)
{
write-host $site.url
}
}
La única línea para el script anterior sería:
Get-SPContentDatabase | ForEach-Object { Write-Output "* $($_.Name)”; foreach($Site in $_.Sites){write-Output `t$Site.url}}
Este script de PowerShell genera todas las bases de datos de contenido de SharePoint con su tamaño y, para cada una de las bases de datos de contenido, proporciona la lista de colecciones de sitios dentro de la base de datos de contenido.
Obtenga todas las colecciones de sitios en una base de datos de contenido específica:
Cambiemos ligeramente el script para que todas las colecciones de sitios vivan en una base de datos de contenido particular:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Set the Content Database Name
$ContentDbName = "SP2010_SharePoint_ContentDB"
#Get the Content Database
$ContentDb = Get-SPContentDatabase -Identity $ContentDbName
#Iterate through each site collection in the Content database
foreach($site in $ContentDb.Sites)
{
write-host $site.url
}
¿Cómo encontrar en qué base de datos de contenido se encuentra una colección de sitios en particular?
¡Simple! Simplemente use: Get-SPContentDatabase -site https://Site-Collection-URL
¡Simple! Simplemente use: Get-SPContentDatabase -site https://Site-Collection-URL
