Genstart en tjeneste eksternt ved hjælp af PowerShell på flere servere

Jeg lavede en hurtig PowerShell-funktion, så jeg kunne genstarte en tjeneste på 1 eller flere servere med én kommando. Jeg havde ikke fundet en nem måde at gøre dette i PowerShell før, så jeg smed dette sammen. Det, jeg gjorde, var at indsætte funktionskoden i min PowerShell-profil på c:\users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profiles.ps1 for at sikre, at den blev indlæst hver gang jeg startede mit PowerShell-vindue. Syntaksen i scriptet er enkel:

Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2

Tjenestenavnet er en simpel streng og skal være det korte navn på tjenesten. Indstillingen ServerNames skal være en kommasepareret liste over de servere, som du ønsker at genstarte tjenesten på. Det kan være et vilkårligt antal servere, hvilket betyder, at du kan bruge dette til at fjernstoppe tjenesten på kun 1 server eller 100 servere. Output af tjenesten, der genstartes, ser således ud:

Kopier nedenstående script:

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

 }
 }

Ind i din PowerShell-profil på nedenstående sti. Hvis PS1-filen ikke er der, kan du oprette den manuelt:

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

Save and close the file and you should be ready to rock!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.