Here is a quick and directy Powershell script to get and change the Maximum Site Count for the Content databases in SharePoint. We had a large farm with hundred of databases so I used the following script to set the Maximum Site Count equal to current Sites in the database and Warning to less than 1. You can change it based on the logic of your choice.
Get the List of Databases in a text file
$Databases = @();
foreach($aDB in Get-SPContentDatabase)
{
$DB = New-Object PSObject
Add-Member -input $DB noteproperty 'Name' $aDB.Name
Add-Member -input $DB noteproperty 'Maximum' $aDB.MaximumSiteCount
Add-Member -input $DB noteproperty 'Warning' $aDB.WarningSiteCount
Add-Member -input $DB noteproperty 'Current' $aDB.Sites.Count
$Databases += $DB
Write-Host $aDB.Name + " " + $aDB.MaximumSiteCount + " " + $aDB.WarningSiteCount
}
$Databases | Out-File C:\DatabasesBefore.txt
#$Databases | Out-GridView
Change the values
foreach($aDB in Get-SPContentDatabase)
{
if(!$aDB.Name.Contains("MySite"))
{
Write-Host $aDB.Name
$MaxSiteCount = $aDB.MaximumSiteCount
$WarningCount = $aDB.WarningSiteCount
$CurrentCount = $aDB.Sites.Count
Write-Host "$aDB.Name $MaxSiteCount $WarningCount $CurrentCount" -ForegroundColor Yellow
$aDB.MaximumSiteCount = $CurrentCount
$aDB.WarningSiteCount = $CurrentCount - 1
$aDB.Update()
Write-Host "$aDB.Name $aDB.MaximumSiteCount $WarningCount $CurrentCount" -ForegroundColor Green
}
}
Note: The script is excluding mysites databases and will fail for content DB which has no site collection so please add the logic based on your environment
You can re-run the first script if you want to verify the change but Central Administration –> Manage Content Database will show you the updates straight away.