SharePoint 2013: Como obtener el espacio ocupado por cada colección de sitios de la granja con PowerShell!

Siguiendo con mi serie de scripts (y tips) PowerShell, en esta ocasión os dejo uno en el que podéis obtener fácilmente el espacio ocupado por cada colección de sitios de la granja. Espero que el script os sea de utilidad.

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

   2: # Script que determina el espacio de almacenamiento de cada colección de sitios de la granja

   3: # Parámetros necesarios: N/A

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

   5:  

   6:  

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

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

   9:  

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

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

  12:  

  13: #Función que permite obtener todo el listado de Aplicaciones Web

  14: function GetAllWebApplications

  15: { 

  16:    

  17:     write-host "Iniciada la extracción de las colecciones de sitios de cada Aplicación Web de la Granja ...." -foregroundcolor yellow 

  18:     try

  19:     {

  20:         $spWebApps = Get-SPWebApplication -IncludeCentralAdministration

  21:         foreach($spWebApp in $spWebApps) 

  22:         {             

  23:             GetAllSitecollectionsInfoInWebapplication -spWebApp $spWebApp  

  24:  

  25:         } 

  26:     }

  27:     catch [System.Exception]

  28:     {

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

  30:     }

  31: } 

  32:  

  33: #Función que obtiene la información de cada colección de sitios  

  34: #http://kancharla-sharepoint.blogspot.com.es/2013/08/powershell-script-to-get-all-site.html  

  35: function GetAllSitecollectionsInfoInWebapplication

  36: { 

  37:     param ($spWebApp)

  38:     try

  39:     {       

  40:         foreach($spSite in $spWebApp.Sites) 

  41:         {            

  42:             #Almacenamiento en MB

  43:             [int]$usage = $spSite.usage.storage/1MB             

  44:             $spWebApp.DisplayName + " , " + $spSite.RootWeb.Title + " , " + $spSite.Url + ", " + $usage + " MB"

  45:         }  

  46:     } 

  47:     catch [System.Exception]

  48:     {

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

  50:     }

  51:  } 

  52:  

  53: Start-SPAssignment –Global

  54: GetAllWebApplications > SiteCollection.csv

  55: Stop-SPAssignment –Global

  56:  

  57: Remove-PsSnapin Microsoft.SharePoint.PowerShell

Y este es el resultado:

image