Introduction
A while back I wrote a quick script to ‘Restart services on a SharePoint 2010 Farm’, this blog post can be found here.
Anyway, I have slightly updated it for SharePoint 2013. Its pretty much the same though I am also restarting the Search process too and also checking that the service exists on the server before restarting.
How you find it useful
The Script
Here is the script:-
<pre>
param
(
[Parameter(Mandatory=$false, HelpMessage='-ServiceNames Optional, provide a set of service names to restart.')]
[Array]$ServiceNames=@("SharePoint Timer Service","SharePoint Administration", "SharePoint Server Search 15", "World Wide Web Publishing Service","IIS Admin Service")
);
Write-Host "Attempting to get SharePoint Servers in Farm" -ForegroundColor White;
$farm = Get-SPFarm;
$servers = $farm.Servers;
Write-Host "Found" $servers.Count "Servers in Farm (including database servers)" -ForegroundColor White;
foreach($server in $servers)
{
if($server.Role -ne [Microsoft.SharePoint.Administration.SPServerRole]::Invalid)
{
Write-Host "Attempting to restart services on" $server.Name -ForegroundColor White;
foreach($serviceName in $ServiceNames)
{
$serviceInstance = Get-Service -ComputerName $server.Name -Name $serviceName -ErrorAction SilentlyContinue;
if($serviceInstance -ne $null)
{
Write-Host "Attempting to restart service" $serviceName ".." -ForegroundColor White -NoNewline;
try
{
$restartServiceOutput="";
Restart-Service -InputObject $serviceInstance;
Write-Host " Done!" -ForegroundColor Green;
}
catch
{
Write-Host "Error Occured: " $_.Message;
}
}
}
}
}
</pre>

