Checking Capacity boundaries was made simpler using my Maxer tool ( http://gallery.technet.microsoft.com/office/Maxer-for-SharePoint-2013-52208636 ). I decided that it would be way easier to port the code to PowerShell (and then add some). This makes it easier for everybody to add or adjust sections according to personal or company liking.

PowerShell Maxer for SharePoint 2013 is a script that checks for capacity planning limits as described per the Planning section of the TechNet Wiki SharePoint 2010 Best Practices overview page at http://social.technet.microsoft.com/wiki/contents/articles/12438.sharepoint-2013-best-practices.aspx

 PowerShell Maxer for SharePoint 2013 can do the following things:

 To get the idea, I've included some code snippets.

Here's code for counting the number of list items:

PowerShell
Edit|Remove
function CountLists($currentWeb) 
{ 
  foreach ($currentList in $currentWeb.Lists) 
  { 
    $sw.WriteLine("There are {0} items in list {1}. A max of 30,000,0000 is allowed."$currentList.ItemCount, $currentList.Title) 
  } 
} 
Code for counting members in a group:
PowerShell
Edit|Remove
function CountGroups($currentSc) 
{ 
    foreach($currentGroup in $currentSc.OpenWeb().SiteGroups) 
    { 
        $sw.WriteLine("Group {0} has {1} users. A max of 5,000 is allowed."$currentGroup.Name, $currentGroup.Users.Count) 
    } 
} 
 
Code for counting all users in a site collection:
PowerShell
Edit|Remove
function CountUsers($currentSc) 
{ 
    foreach ($currentUser in $currentSc.OpenWeb().SiteUsers) 
    { 
        $sw.WriteLine("User {0} is a member of {1} groups. A max of 5,000 is allowed."$currentUser.get_Name(), $currentUser.Groups.Count) 
    } 
 
Code for finding group owners:
C#
Edit|Remove
function CountOwners($ownersWeb) 
{ 
    foreach($ownersGroup in $ownersWeb.Groups) 
    { 
        if($ownersGroup.Name -like "*Owners*") 
        { 
            $sw.WriteLine("") 
            $sw.WriteLine("The following users are a member of the {0} group:", $ownersGroup.Name) 
            foreach($ownerUser in $ownersGroup.Users) 
            { 
                $sw.WriteLine("User: {0}", $ownerUser.Name) 
            } 
        } 
    } 
} 
 
Code for counting sub sites and displaying activated site features:
PowerShell
Edit|Remove
function Countwebs($currentSc) 
{ 
    foreach ($currentWeb in $currentSc.AllWebs) 
    { 
        $sw.WriteLine("") 
        $sw.WriteLine("Analyzing Web site {0}"$currentWeb.Title) 
        CountOwners $currentWeb 
         
        $sw.WriteLine("") 
        $sw.WriteLine("The following features are active at Web scope:") 
        $contentWebAppServices = (Get-SPFarm).services  
        $webFeatures = Get-SPFeature | Where-Object {$_.Scope -eq "Web" } 
        if ($webFeatures -ne $null) 
        { 
               foreach ($feature in $webFeatures) 
               { 
                  if ((Get-SPFeature -Web $sc.Url | Where-Object {$_.Id -eq $feature.id}) -ne $null) 
                  { 
                     $sw.WriteLine("Feature: {0}, Typename {1} with GUID {2} is hidden {3}"$feature.DisplayName, $feature.TypeName, $feature.Id, $feature.Hidden) 
                  } 
               } 
        }     
        $sw.WriteLine("") 
         
        $sw.WriteLine("Web site {0} has {1} sub sites. A max of 2,000 is allowed."$currentWeb.Title, $currentWeb.Webs.Count) 
        CountLists $currentWeb 
        $sw.WriteLine("") 
    } 
} 
 
Code for counting site collections in content db's:
function CountContentDatabases($currentWebApp)
{
 foreach($currentCd in $currentWebApp.ContentDatabases)
 {
  $sw.WriteLine("Content database {0} has {1} site collections. The maximum supported is 10,000. Recommended is a maximum of 5,000.", $currentCd.name, $currentCd.Sites.Count)
 }
}
And so on... Get the full PS script via the download link.