Lo script in PowerShell elenca tutte le site collection presenti nella Farm di SharePoint 2007 (WSS3 - MOSS) e lo spazio da loro occupato in MB.

PowerShell: SPSiteCollectionSize.ps1

Write-Host "Elenca lo spazio occupato dalle site collection"
Write-Host (GEt-Date -Format D)
Write-Host ""

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

$farm = [Microsoft.SharePoint.Administration.SPFarm]::local
$services = $farm.Services
$wss = $services | Where-Object {$_.TypeName -eq "Windows SharePoint Services Web Application"}
$webApps = $wss.WebApplications
#$webApps | ForEach-Object {$_.Sites} | ForEach-Object {write-output ($_.Url + ", " + [Math]::Round($_.Usage.Storage / 1024 / 1024, 2) + " MB")}

#$webApps | ForEach-Object {$_.Sites} | Sort-Object Url | Format-Table Url, @{Label="Title"; Expression={$_.RootWeb.Title}}, @{Label="Size MB"; Expression={[Math]::Round($_.Usage.Storage  / 1024 / 1024, 2) }}, @{Label="Visits"; Expression={$_.Usage.Visits}} -auto
$webApps | ForEach-Object {$_.Sites} | Sort-Object Url | Get-Unique | Format-Table Url, @{Label="Size MB"; Expression={[Math]::Round($_.Usage.Storage  / 1024 / 1024, 2) }}, @{Label="Visits"; Expression={$_.Usage.Visits}} -auto
Da questo esempio si vede come accedere alla Farm (SPFarm) ed ottenere l'elenco delle Web Application (SPWebApplicationCollection) e da queste ricavarsi tutte le site collection (SPSite).

Lo spazio occupato (Usage.Storage), essendo una proprietà di una proprietà passata tramite pipe, non può essere visualizzato semplicemente con Usage.Storage, ma va preso tramite la sintassi

PowerShell

@{Label="titolo";  Expression={$_.Usage.Storage}}

La sintassi compatta di questa espressione è

PowerShell

{$_.Usage.Visits}
dove non è possibile specificare un titolo per la colonna (che in questo caso sarà $_.Usage.Storage).

il risultato di questo script sarà:

Text

Elenca lo spazio occupato dalle site collection
giovedì 24 luglio 2008

Url                                         Size MB Visits
---                                         ------- ------
http://localhost                                  1  22556
http://localhost/MySite                           0
http://localhost/personal/administrator           0
http://localhost/sites/alberto                    0
http://localhost:13472                       214,72  70842
http://localhost:20100/ssp/admin               2,11    127
Tags:
PowerShell200 Script85 SharePoint498 SharePoint 2007218
Potrebbe interessarti anche: