Starta om en tjänst på distans med PowerShell på flera servrar

Jag skapade en snabb PowerShell-funktion som gör det möjligt för mig att starta om en tjänst på en eller flera servrar med ett enda kommando. Jag hade inte hittat något enkelt sätt att göra detta i PowerShell tidigare så jag slängde ihop detta. Jag klistrade in funktionskoden i min PowerShell-profil på c:\users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profiles.ps1 för att se till att den laddades varje gång jag startade mitt PowerShell-fönster. Syntaxen för skriptet är enkel:

Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2

Tjänstens namn är en enkel sträng och ska vara det korta namnet på tjänsten. Alternativet ServerNames ska vara en kommaseparerad lista över servrar som du vill starta om tjänsten på. Det kan vara ett valfritt antal servrar, vilket innebär att du kan använda detta för att fjärrstanna tjänsten på bara 1 eller 100 servrar. Utmatningen av den omstartade tjänsten ser ut så här:

Kopiera nedanstående skript:

function Restart-MultipleServerServices($ServiceName, $ServerNames)
{

foreach ($i in $ServerNames)
{
$service = Get-Service -ComputerName "$i" -name $ServiceName
 $service.stop()
 do { Start-sleep -Milliseconds 200}
 until ((Get-Service -ComputerName "$i" -Name $ServiceName).status -eq 'Stopped')
 Write-Host "Attempting to Stop Service $($ServiceName) on Server $i" -ForegroundColor Green
 Start-Sleep 10
 $service.start()
 do { Start-sleep -Milliseconds 200}
 until ((Get-Service -ComputerName "$i" -Name $ServiceName).status -eq 'Running')
 Write-Host "Attempting to Start Service $($ServiceName) on Server $i" -ForegroundColor Green

 }
 }

I din PowerShell-profil på nedanstående sökväg. Om PS1-filen inte finns där kan du skapa den manuellt:

 1: C:\Users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profile.ps1

Spara och stäng filen så är du redo att börja arbeta!

Lämna ett svar

Din e-postadress kommer inte publiceras.