• Checking Site sizes in SharePoint 2007 and 2010

    Our Sharepoint admin asked me to help him write a script, that found out how much space each DocumentLibrary in our sharepoint farm took up, so after some googeling I found that I could use the StorageManagementInformation Method on the SPSite object, so I cam up with this little script

    [ps]
    #First we load the SharePoint assembly
    [void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")

    #Then we create a function that returns tje SPSite
    function Get-SPSite($url){
    return new-Object Microsoft.SharePoint.SPSite($url)
    }

    $site = Get-SPSite http://URL
    # We use the StorageManagementInformation Method on the $SPSite object, StorageManagementInformation returns a DataTable, and takes 4 input values
    # System.Data.DataTable StorageManagementInformation(Microsoft.SharePoint.SPSite+StorageManagementInformationType ltVar, Microsoft.SharePoint.SPSite+StorageManagementSortOrder sordVar, Microsoft.SharePoint.SPSite+StorageManagementSortedOn soVar, System.UInt32 nMaxResults)
    #
    # ltVar: What kind of storage management information to display
    # List = 1
    # DocumentLibrary = 2
    # Document = 3
    # sordVar: the direction in which the items are to be sorted
    # Increasing = 0×10
    # Decreasing = 0×11
    # soVar: whether the items are sorted by size or by date
    # Size=0
    # Date = 1
    # nMaxResults: the number of results to return

    $DT = $site.StorageManagementInformation(2,0×11,0,$(($site.allwebs).count));
    $DT | Select @{Label="Size"; Expression={[INT]($_.Size/1MB)}},Directory | out-gridview
    $site.Dispose()
    [/ps]

    Seems as if I forgot the last line, where I dispose of the Site object, I have added that now.