On a clean farm (one WFE\APP server and one back-end (SQL)) after installing SharePoint binaries i ran some configuration scripts. One of them contains command


which, according to Technet, installs and provisions services on a farm.

After it i ran another script, which contains the following:

Start-SPServiceInstance | Where {$_.TypeName -eq "Business Data Connectivity Service"}
$dbName = "BCSDB"
New-SPBusinessDataCatalogServiceApplication -Name "Business Data Connectivity Service" -ApplicationPool $appPool -DatabaseName $dbName

Finally i add some servers to farm so my farm is now three-tier farm - two WFE, two APP, one SQL.

Then i try to enumerate all service instances in my farm:

Get-SPServiceInstance | ?{$_.TypeName -like "*Busi*"}

and there what i see:

PS C:\Windows\system32> Get-SPServiceInstance | ?{$_.TypeName -like "*Busi*"}

TypeName                         Status   Id                                  
--------                         ------   --                                  
Business Data Connectivity Se... Online   9959c93d-3c04-4c03-a8ce-ed20f8933be6
Business Data Connectivity Se... Online   aa7327ee-6fd9-4cf1-9353-46f056525572
Business Data Connectivity Se... Online   f71e7d55-b680-4ce9-8a03-75ea962eeeef
Business Data Connectivity Se... Online   ab71d683-3232-45a0-917e-7bd8e697fad4

But when looking in to Central Administration web site i see that on my WFE servers Business Data Connectivity Service is stopped ("State" column) and on APP servers it is started.

How can it be - the difference between powershell console output and GUI?

Update 19\03\15

Just for test:

As per GUI (Central Administration) - it shows me Excel Svc started on both APP servers and Stopped on both WFEs.

But sample script

Get-SPServiceInstance | Where {$_.TypeName -eq "Excel Calculation Services"}

shows me

TypeName                         Status   Id                                  
--------                         ------   --                                  
Excel Calculation Services       Online   a5a47108-91e0-4e26-a712-c0cc54f6145d
Excel Calculation Services       Online   5b09358f-b9a7-4ed4-b9a4-689e356eb78c
Excel Calculation Services       Online   2ff11759-78b5-4561-815e-b8bd0c0c51b8
Excel Calculation Services       Online   d1559526-0f57-4b13-8a1d-53c0b9462de1

and a bit complicated

$a = Get-SPServiceInstance | Where {$_.TypeName -eq "Excel Calculation Services"}
                if($a.Status -ne "Online" -and $a.Status -ne "Provisioning") 
                    Write-Output 0
                else {
                    Write-Output 1

shows me 0.

Does it mean that something wrong is with my farm?

2 Answers 2


You have started your service instances on your App servers, which is right, that's why when you go to the GUI in the App servers you will see it as started. That's the purpose of the App server, that it's responsible for running your services and leaving the WFE for other purposes. You don't need to run this service on the WFE servers. So what's going on in your environment is right.

  • No, as i said earlier i started from scratch - from one server where i ran Install-SPService cmdlet as part of scripted SharePoint installation. Next i've added three more servers to farm and created necessary service applications on APP servers using another script and also i've started specific service instances on APP servers. In fact, Central Administration GUI shows me a few services started on WFE servers, and more - on APP servers. And ofc i am aware which services should be on WFEs, and which - on APPs :)
    – Sergey
    Mar 19, 2015 at 6:32

This should not be expected behavior, because if powwershell showing online these should be online from Central admin(Manager services on server). I would recomend run the below command:

Get-SPServiceInstance | ?{$_.TypeName -like "Use*"} | select TypeName, ID,server

You get out which include the Server name on which that instance is online. from here you should stop it from all the server where u dont want.

Stop-SPServiceInstance "GUID of the instance"
  • I've tried the same script, it shows me that service instances are on on all 4 servers. So in view of this unexpected behaviour, the best way in my case is to shut down service instances on servers where they don't need to be started? But in general - does powershell output (Get-SPServiceInstance) should be the same as shown in Central Administration? (i.e. "started" in shell = "started" in GUI and vice versa)
    – Sergey
    Mar 19, 2015 at 6:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.