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!