Change SharePoint Site Collection Quota using PowerShell

In some cases, I have seen site collection quotas are turned to "Individual Quota" in the database attachment method, even I copied the quota templates before database attachment. All quota settings are lost! I dunno the cause of this issue and want to apply site collection quota to existing sites.

To apply quota for SharePoint site collection using PowerShell, the syntax goes like:
Set-SPSite -Identity "Site-collection-URL" -QuotaTemplate "Quota-Template-Name"

Set-SPSite -Identity "" -QuotaTemplate "Gold - 1 GB"
Where "Gold - 1 GB" is our existing quota defined! We can apply quotas in bulk with PowerShell now!

Change quota for SharePoint Site Collections programmatically:
To set site collection quota for SharePoint sites programmatically using PowerShell, The code goes like:

function global:Get-SPSite($url)
    return new-Object Microsoft.SharePoint.SPSite($url)

$contentService =[Microsoft.SharePoint.Administration.SPWebService]::ContentService

$QuotaTemplate = $contentService.QuotaTemplates["Gold - 1 GB"]
$site = Get-SPSite ""

Set Individual Quotas using PowerShell:
#Set the site URL variable accordingly!
$SiteURL = ""

Set-SPSite -Identity $SiteURL -MaxSize 1GB -WarningSize 900MB 

Bulk update SharePoint Site collection quotas:
In another case, Got a requirement to change quota template for all site collections under a specific managed path (say: Departments)
$WebAppURL = ""

$TemplateName ="Gold - 1 GB"

$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$quotaTemplate = $contentService.QuotaTemplates[$TemplateName]

Get-SPWebApplication $WebAppURL | Get-spsite -limit all | Where-Object {$_.ServerRelativeUrl.StartsWith("/departments/")} |  ForEach-Object { $_.Quota = $quotaTemplate }

To Remove a Quota Assigned (either via Quota Template or Individual Quota) to a Site collection, Use:
$Site = Get-SPSite -Identity ""
$Site.Quota = $null           

SharePoint 2007 - Set quotas in Bulk with STSADM:
We can set site collection quota in bulk using stsadm -o updatequota command line.

E.g. stsadm -o updatequota –quotaname "Name of the Quota defined in Central Admin" 
It's also possible to limit the quota changes within a content database.

1 comment:

Please Login and comment to get your questions answered!

Powered by Blogger.