A Very Helpful PowerShell Script
I don’t normally post code samples as I try to do just commentary here, but I created a PowerShell script today based extensively on a sample from Phil Childs’ PowerShell Scripts site. My need was to change about 1000 SharePoint sites’ site collection quotas and the GUI doesn’t support bulk editing…this is what I ended up with:
function CreateQuotaTemplate ($Name, $MaxLevelMB, $WarnLevelMB)
{
$quotaTemplate = New-Object Microsoft.SharePoint.Administration.SPQuotaTemplate
$quotaTemplate.Name = $Name
$quotaTemplate.StorageMaximumLevel = ($MaxLevelMB*1024)*1024
$quotaTemplate.StorageWarningLevel = ($WarnLevelMB*1024)*1024
$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$contentService.QuotaTemplates.Add($quotaTemplate)
$contentService.Update()!
}
CreateQuotaTemplate –Name “Standard Site Collection Quota” –MaxLevelMB 900 –WarnLevelMB 850
function BulkReplaceQuotaTemplates ($WebApp, $NewTemplate)
{
$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$newQuotaTemplate = $contentService.QuotaTemplates[$NewTemplate]
$webApplication = Get-SPWebApplication $WebApp
$webApplication | Get-SPSite -limit all | ForEach-Object {
Set-SPSite -Identity $_.Url -QuotaTemplate! $newQuotaTemplate}}
BulkReplaceQuotaTemplates -WebApp http://mywebapp -NewTemplate “Standard Site Collection Quota”
Very cool – thanks Phil – saved me hours of clicking…