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!
.