Ajustei uma função PowerShell rápida que me permitiria reiniciar um serviço em 1 ou mais servidores em um comando. Eu não tinha encontrado uma maneira fácil de fazer isto no PowerShell antes, por isso atirei isto junto. A sintaxe do script é simples:
Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2
O nome do serviço é uma simples string, e deve ser o nome curto do serviço. A opção ServerNames deve ser uma lista separada por vírgulas dos servidores em que você deseja reiniciar o serviço. Pode ser qualquer número de servidores, o que significa que você pode usar isso para parar remotamente o serviço em apenas 1 servidor ou 100. A saída do serviço sendo reiniciado parece assim:
Copiar o script abaixo:
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
}
}
No seu perfil PowerShell no caminho abaixo. Se o arquivo PS1 não estiver lá, você pode criá-lo manualmente:
1: C:\Users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profile.ps1
>Guardar e fechar o arquivo e você deve estar pronto para balançar!