Reiniciar un servicio de forma remota utilizando PowerShell en múltiples servidores

Lanzé una función rápida de PowerShell juntos que me permitiría reiniciar un servicio en 1 o más servidores en un comando. No había encontrado una manera fácil de hacer esto en PowerShell antes así que tiré esto juntos. Lo que hice fue pegar el código de la función en mi perfil de PowerShell en c:\users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profiles.ps1 para asegurar que se cargue cada vez que inicie mi ventana de PowerShell. La sintaxis del script es sencilla:

Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2

El nombre del servicio es una simple cadena, y debe ser el nombre corto del servicio. La opción ServerNames debe ser una lista separada por comas de los servidores en los que desea reiniciar el servicio. Puede ser cualquier número de servidores, lo que significa que puede usar esto para detener remotamente el servicio en sólo 1 servidor o en 100. La salida del servicio que se está reiniciando tiene el siguiente aspecto:

Copie el siguiente 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

 }
 }

En su perfil de PowerShell en la siguiente ruta. Si el archivo PS1 no está ahí, puedes crearlo manualmente:

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

¡Guarda y cierra el archivo y ya deberías estar listo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada.