SharePoint: Como ejecutar SP-TestContentDatabase contra todas las BDs de Contenidos de la granja!

En esta ocasión os dejo un pequeño script que os permite ejecutar el comando SP-TestContentDatabase de forma recursiva en todas las BDs de contenido de la granja. La salida correspondiente la podréis utilizar para detectar problemas en vuestras BD’s de contenidos tanto en SharePoint 2010 como en SharePoint 2013. En el primer caso, os permitirá identificar posibles problemas a la hora de migrar a SharePoint 2013. Espero que el script os sea de utilidad.

   1: ############################################################################################################################################

   2: # Script para ejecutar Test-SPContentDatabase contra todas las BDs de Contenidos de la Graja

   3: # Parámetros necesarios: N/A

   4: ############################################################################################################################################

   5:  

   6: If ((Get-PSSnapIn -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) 

   7: { Add-PSSnapIn -Name Microsoft.SharePoint.PowerShell }

   8:  

   9: #Hacemos un buen uso de PowerShell para no penalizar el rendimiento

  10: $host.Runspace.ThreadOptions = "ReuseThread"

  11:  

  12: #Definición de la función que realizar el Test de cada BD de Contenidos de la Granja

  13: function Execute-TestContentDatabase

  14: {  

  15:     param ($sServerInstance)

  16:     try

  17:     {

  18:  

  19:         $spWebApps = Get-SPWebApplication -IncludeCentralAdministration

  20:         foreach($spWebApp in $spWebApps) 

  21:         { 

  22:             #$spWebApp.Name

  23:             $ContentDatabases = $spWebApp.ContentDatabases

  24:             foreach($ContentDatabase in $ContentDatabases) 

  25:             {   

  26:                 Test-SPContentDatabase –Name $ContentDatabase.Name -ServerInstance $sServerInstance -WebApplication $spWebApp.Url

  27:             } 

  28:         } 

  29:     }

  30:     catch [System.Exception]

  31:     {

  32:         write-host -f red $_.Exception.ToString()

  33:     }

  34: }

  35:  

  36:  

  37: Start-SPAssignment –Global

  38: Execute-TestContentDatabase -sServerInstance "c4968397007"

  39: Stop-SPAssignment –Global

  40:  

  41: Remove-PsSnapin Microsoft.SharePoint.PowerShell