One of the most hyped and exciting new features in SharePoint 2016 is Minrole. Minrole is the ability to define a server’s role in the farm, and for SharePoint to make sure that server is running all the services necessary to meet those responsibilities. In this blog post I’ll show you how to determine what Minrole a machine has, and how to change it if you want to.
This blog post was written against pre-release software, Beta 2 of SharePoint 2016. As things change, this might not be exactly the same with SharePoint 2016 when it RTMs. Consider yourself warned.
Every machine in your SharePoint 2016 has a Minrole assigned to it. That role is defined when you join a server to your farm. You can create a farm with the –ServerRoleOptional switch, but that just assigns the Minrole Custom to server. It still has a Minrole. You can see a machine’s Minrole in Central Admin. Browse to System Settings > Manage servers in this farm (/_admin/FarmServers.aspx) to see all the farm servers and their roles.
This also tells you if the machine is compliant with its defined role. To get this same information in with PowerShell, use Get-SPServer.
We can see from both pictures that the machine SP01 has the Minrole of SingleServerFam. When I installed this machine, it was going to be the only server in the farm, so that made sense. But what if I add more servers to the farm and I want to use the Minroles a little more intelligently? Fortunately it’s easy to change a machine’s role in the farm.
Much like there are two easy ways to discover Minrole, there are also two easy ways to change Minrole. We’ll take the easiest one first, Central Admin. Browse to System Settings > Convert server role in this farm (/_admin/RoleConversion.aspx). Choose your server’s new role from the dropdown and hit apply.
Since you can do this remotely, SharePoint creates a Timer Job to do the conversion. With Beta 2 of SharePoint 2016 I get this error message if my Farm account is not a local administrator:
It’s a bug, but it makes sense. The Central Admin app pool runs under the Farm account and that account doesn’t have permissions to make the changes. That can be fixed, and hopefully it will be by RTM.
You can also do this with PowerShell with the Set-SPServer –role command. It looks like this:
I’m running PowerShell as my Install account, which is a local admin, so everything should work. We can see the machine still has the SingleServerFarm role. It didn’t change when it failed in Central Admin. I ran the following line to change its role to Application:
Set-SPServer -Identity SP01 -Role Application
The command does not assume the local machine if no identity parameter is provided, so I had to add that. Also, if you can’t remember the roles, don’t worry. After you type –Role and hit space, you can hit the Tab key and PowerShell will cycle you through the acceptable values. There is a little bug there too. It offers up the role SingleServer, but throws this error if you try to assign it:
I’m sure they’ll tidy that up by RTM as well.
If we double-check Central Admin, we’ll see our server is now happily assuming its new role as an Application server.
Of course your best choice is to plan your SharePoint 2016 farm appropriately and not have to change a server’s role. But if you do need to, it’s a pretty simple operation.