Wrzuciłem szybką funkcję PowerShell razem, która pozwoliłaby mi zrestartować jedną usługę na 1 lub więcej serwerach w jednym poleceniu. Nie znalazłem łatwego sposobu, aby to zrobić w PowerShell wcześniej, więc rzuciłem to razem. Składnia skryptu jest prosta:
Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2
Nazwa usługi jest prostym ciągiem znaków i powinna być krótką nazwą usługi. Opcja ServerNames powinna być rozdzieloną przecinkami listą serwerów, na których usługa ma zostać uruchomiona ponownie. Może to być dowolna liczba serwerów, co oznacza, że możesz użyć tej opcji do zdalnego zatrzymania usługi na 1 serwerze lub na 100. Wynik ponownego uruchomienia usługi wygląda następująco:
Kopiuj poniższy skrypt:
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
}
}
Włącz do swojego profilu PowerShell w poniższej ścieżce. Jeśli nie ma tam pliku PS1, możesz go utworzyć ręcznie:
1: C:\Users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profile.ps1
Zapisz i zamknij plik, a powinieneś być gotowy do pracy!