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>