Wednesday, August 21, 2013

Windows PowerShell Script to get Site Collections Quota in a Farm


We have a requirement to get the list of all the Site collections along with their Site quotas.
Below Windows PowerShell script will output the following information,
 
  • Site URL
  • Assigned/Allocated Site Quota Size
  • Total Storage User
You can copy the below script into a notepad and edit the OutputFile and Siteurl as needed in your environment save the file as Script.PS1. You can also paste the code in the SharePoint 2010 Management Shell. (Keep in mind to run as Administrator)
 

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
#Configure the location for the SiteCollectionQuota output file
$OutputFile="C:\SiteCollectionsQuota.csv";
"Site URL"+","+"Quota Limit (MB)"+","+"Total Storage Used (MB)"+"" | Out-File -Encoding Default -FilePath $OutputFile;
#Specify the root site collection within the Web app
$Siteurl="Your web application URL";
$Rootweb=New-Object Microsoft.Sharepoint.Spsite($Siteurl);
$Webapp=$Rootweb.Webapplication;
#Loops through each site collection within the Web app
Foreach ($Site in $Webapp.Sites)
{if ($Site.Quota.Storagemaximumlevel -gt 0) {[int]$MaxStorage=$Site.Quota.StorageMaximumLevel /1MB} else {$MaxStorage="0"};
if ($Site.Usage.Storage -gt 0) {[int]$StorageUsed=$Site.Usage.Storage /1MB};
if ($Storageused-gt 0 -and $Maxstorage-gt 0){[int]$SiteQuotaUsed=$Storageused/$Maxstorage* 100} else {$SiteQuotaUsed="0"};
$Web=$Site.Rootweb; $Site.Url + "," +$MaxStorage+","+$StorageUsed | Out-File -Encoding Default -Append -FilePath $OutputFile;$Site.Dispose()};

 Reference: SharePoint Server 2010 Windows PowerShell cmdlets, http://technet.microsoft.com/en-us/library/ff678226(v=office.14).aspx

Thursday, August 15, 2013

Get SharePoint List Name from GUID


We have couple of errors recorded in ULS logs with List Id\GUID and we need to get the list name to troubleshoot further.

 Here is the code snippet to get SharePoint list Name from GUID.
 
SPSite Site= new SPSite("Your Site Name");
SPWeb Web= Site.OpenWeb();
Guid id = new Guid("Your LIST GUID");
SPList list = Web.Lists.GetList(id, true);
 
Hope this helps