Repornirea unui serviciu de la distanță folosind PowerShell pe mai multe servere

Am pus laolaltă o funcție PowerShell rapidă care să-mi permită să repornesc un serviciu pe 1 sau mai multe servere printr-o singură comandă. Nu am găsit o modalitate ușoară de a face acest lucru în PowerShell înainte, așa că am aruncat acest lucru împreună. Ceea ce am făcut a fost să lipesc codul funcției în profilul meu PowerShell la c:\users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profiles.ps1 pentru a mă asigura că este încărcat de fiecare dată când îmi pornesc fereastra PowerShell. Sintaxa scriptului este simplă:

Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2

Numele serviciului este un simplu șir de caractere și ar trebui să fie numele scurt al serviciului. Opțiunea ServerNames trebuie să fie o listă separată prin virgulă a serverelor pe care doriți să reporniți serviciul. Poate fi orice număr de servere, ceea ce înseamnă că puteți folosi această opțiune pentru a opri de la distanță serviciul pe doar 1 sau 100 de servere. Rezultatul repornirii serviciului arată astfel:

Copiați scriptul de mai jos:

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


 }
 }

În profilul dvs. PowerShell la calea de mai jos. Dacă fișierul PS1 nu există, îl puteți crea manual:

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

Salvați și închideți fișierul și ar trebui să fiți gata de acțiune!

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.