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!