Restornar um serviço remotamente usando PowerShell em múltiplos servidores

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!

Deixe uma resposta

O seu endereço de email não será publicado.