Sharepoint - Do I have to run Register-SPWorkflowService for each site collection?

Register the service by selecting one of your Web Applications as per the example you provided above. After you have registered it for (in this case, for "Collab"), you should be able to verify that 2013 Workflows now work within SharePoint Designer 2013 for any site residing within the "Collab" Web Application.

If you have other Web Applications where you have customized the service applications then you need to enable them like any other shared service. If you have other web applications with default services, then the 2013 Workflow service should be working. So no, you do not run the command multiple times. One time only. Then manage the service within SharePoint Central Admin.

I summarized this in my blog post here:

http://forte-design.com/?p=1

Chuck LaForte Forte Design


You need to execute Register-SPWorkflowService only once for the entire farm.

I have many cases where this did not work though due to some other factors in addition to the Proxy issue mentioned in the earlier response.

  1. SharePoint web applications are using https and the root of their cert is not in Workflow Manager server trusted root authority (MMC Snap-in, Certificates, Local computer)

  2. Test user publishing the workflow is a system account.

  3. Test user does not have an entry in User Profile or does not have an email.

  4. App Management or subscription service is not properly provisioned (no configuration required for App management though).

  5. Workflow Manager endpoint Public key (.Cer) is not registered in SharePoint as Trusted Root Authority (New-SPTrustedRootAuthority) if the communication will be entirely over HTTPS (i.e. Not allowing HTTP).


The 'Register-SPWorkflowService' command creates the service proxy connection for the whole farm, but this proxy connection gets only added to the service connection group of the current web app. If you only have one service connection configuration, you are good to go now.

If you have additional proxy groups configured in your farm, it is not added there and you cannot simply check the box to add it. You need to add the workflow service to these groups, e.g. with the following script snippet:

$appProxyDisplayName = "Workflow Service Application Proxy"

$proxyGroup = "your proxy group name here, look up in ca - web app - service connections"

# https://hughajwood.wordpress.com/2013/08/22/starting-a-service-application-proxy-via-powershell/
$appProxy = Get-SPServiceApplicationProxy | Where-Object {$_.DisplayName -eq $appProxyDisplayName}

# Add workflow Service to an existing service group
# https://technet.microsoft.com/en-us/library/ee704550.aspx
# Add-SPServiceApplicationProxyGroupMember -Identity < the service application proxy group > -Member <members to add to the service application proxy group>

Add-SPServiceApplicationProxyGroupMember -Identity $proxyGroup -Member $appProxy