Home SharePoint SharePoint 2013 Core Service Applications

Have you been tasked with setting up a new SharePoint 2013 environment, or do you want to verify that your existing farm has all the necessary components in place? In this post, we take a look at three core SharePoint 2013 service applications required for a fully functioning farm, and how they can be provisioned via the SharePoint 2013 Management Shell. All the service applications discussed below are available in both the standard and enterprise editions of SharePoint Server 2013, and are recommended to be provisioned in your SharePoint 2013 farm via PowerShell.

If you’re working with a brand new farm, you will likely need an initial application pool for your service apps. If so, you can use the following command to get a default application pool up and running. Microsoft recommends running all of your service applications from a single application pool, unless your requirements dictate the need for separation.

New-SPServiceApplicationPool –Name “Your Default Service Application Pool 
Name” –Account “Domain\ServiceAppPoolAccount”

State Service Application
The State Service Application is often overlooked by SharePoint administrators. It is a common source of errors in the server application logs when missing from the farm. As the name implies, this service application maintains state for user sessions and many out of the box features. The following command can be used to provision the State Service Application from within the SharePoint 2013 Management Shell:

New-SPStateServiceDatabase -Name "State_Service_DB" | New-SPStateServiceApplication -Name "State Service Application" | New-SPStateServiceApplicationProxy –DefaultProxyGroup

After provisioning the State Service Application, visit the “Manage Service Applications” page in Central Administration to verify the service application is listed. Additional information on provisioning the State Service Application can be found here.

Usage and Health Data Collection Service Application
If you want to know the health and status of your SharePoint farm, you need to get this service application up and running. Unlike the Web Analytics Service Application from SharePoint 2010, this version needs to be provisioned from the SharePoint 2013 Management Shell:

New-SPUsageApplication –Name “Usage and Health Data Service Application”

$proxy = Get-SPServiceApplicationProxy | where {$_.TypeName –eq “Usage and Health Data Collection Proxy”}

$proxy.Provision()

After provisioning the Usage and Health Data Collection Service Application, visit the “Manage Service Applications” page in Central Administration to verify the service application is listed and for additional configuration. Additional information on configuring usage and health data collection is available here.

Subscription Settings Service Application
This is likely an unfamiliar service application for many SharePoint administrators, as it was primarily used for multi-tenant scenarios in SharePoint 2010. In SharePoint 2013, the Subscription Settings Service Application is now required for the new App Management service to be fully functional and should be provisioned regardless of a multi-tenancy scenario. (If you’re on SharePoint 2013, you will want to use Apps!) The following commands can be used to provision the Subscription Settings Service Application:

$sa = New-SPSubscriptionSettingsServiceApplication –ApplicationPool “Your Default Service Application Pool Name” –Name “Subscription Settings Service Application” –DatabaseName “Subscription_Settings_Service_DB”

New-SPSubscriptionSettingsServiceApplicationProxy –ServieApplication $sa

Get-SPServiceInstance | where {$_.TypeName –eq “Microsoft SharePoint Foundation Subscription Settings Service”} | Start-SPServiceInstance

After provisioning the Subscription Settings Service Application, visit the “Manage Service Applications” page in Central Administration to verify the service application is listed and for additional configuration. Additional information on configuring the Subscription Settings Service Application can be found here.

2 replies to this post
  1. Hi,
    There in line: $proxy = Get-SPServiceApplicationProxy | where {$_.TypeName –eq “Usage and Health Data Service Application Proxy”}
    should be:
    $proxy = Get-SPServiceApplicationProxy | where {$_.TypeName –eq “Usage and Health Data Service Application”}

    otherwize you will get error: “You cannot call a method on a null-valued expression” and .Provision() function will not start Proxy

    Thx

  2. Hey there,
    Thank you for your comments. I was indeed referencing the service application proxy via an invalid name. I’ve updated the script to reflect the proper service application type of “Usage and Health Data Collection Proxy”.

    Alternatively, we can also set the $proxy variable to reference the display name of service application proxy – as noted in the example below:

    $proxy = get-spserviceapplicationproxy | where {$_.name –eq “Usage and Health Data Service Application”}
    $proxy.provision()

    Thanks again for your feedback!

Leave a Reply