Monday, 27 August 2012

SharePoint 2010 Enterprise Features & CALS

You've just been told that despite having a SharePoint 2010 Enterprise licence, your users also need a Standard CAL + Enterprise CAL.  Shit!

Step 1: Review whether you use any enterprise features.  and if so, review which sites you need them to stay if any.  http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx

What do all those features enable exactly??  Infopath Forms Services might not mean that you can't use Infopath with SharePoint if you dont have enterprise, it may simply mean that you can't use Infopath INSIDE a browser.  So if your users have InfoPath installed on their local computer, then it's not an issue disabling Enterprise features.

Step 2:  If you don't need Enterprise features, and need to disable them because of licensing issues:

Disable in Central Admin:  Manage Web Applications > Manage Features > Deactivate SharePoint Server Enterprise Web application features on each Web Application.

Disable at Site Collection Level: Site Actions > Site Settings > Site Collection Features > Deactivate SharePoint Server Enterprise Site Collection features on all Site Collections

Disable at Site Level: If you're SharePoint setup is anything like ours, you will have a multitude of sites in all of your site collections, so to disable SharePoint Server Enterprise Site features on all sites, you can run this code:


foreach ($site in Get-SPSite -Limit All -ErrorAction SilentlyContinue)
{
   foreach ($web in Get-SPWeb -site $site.url -Limit ALL `-ErrorAction SilentlyContinue)
   {
      Write-Host Site: $web.Url
      Disable-SPFeature -Identity 0806d127-06e6-447a-980e-2e90b03101b8 -url $web.Url -Confirm:$false
   }
}


Note:  The identity for Enterprise Site features is always the same as i've pasted in the code.  The reference site I used to find this id is here: http://www.wssdemo.com/Lists/Features/All%20SharePoint%20Features.aspx

Step 3: Check to make sure all enterprise features are deactivated

(info for this step borrowed from this site: http://blogs.msdn.com/b/bedwards/archive/2011/04/23/mixing-sharepoint-standard-cals-and-enterprise-cals-on-the-same-farm.aspx)


1.PowerScript to show all web applications that have Enterprise features enabled:

foreach ($webapp in Get-SPWebApplication)
{
    foreach ($premiumfeature in Get-SPFeature "PremiumWebApplication" `
        -WebApplication $webapp.Url -ErrorAction SilentlyContinue)
    {
        Write-Host $webapp.Url
    }
}

2.PowerScript to show all site collections that have Enterprise features enabled:

foreach ($site in Get-SPSite -Limit All -ErrorAction SilentlyContinue)
{
    foreach ($premiumfeature in Get-SPFeature "PremiumSite" `
        -Site $site.Url -ErrorAction SilentlyContinue)
    {
        Write-Host $site.Url
    }
    $site.Dispose()
}

3.PowerScript to show all sub sites that have Enterprise features enabled:

foreach ($site in Get-SPSite -Limit All -ErrorAction SilentlyContinue)
{
    foreach ($web in Get-SPWeb -site $site.url -Limit ALL `
        -ErrorAction SilentlyContinue)
    {
        foreach ($premiumfeature in Get-SPFeature "PremiumWeb" `
            -Web $web.Url -ErrorAction SilentlyContinue)
        {
            Write-Host $web.Url, $web.Title
        }
        $web.Dispose()
    }
    $site.Dispose()
}