Palvelun etäkäynnistys PowerShellin avulla useilla palvelimilla

Heitin nopean PowerShell-toiminnon, jonka avulla voisin käynnistää yhden palvelun uudelleen yhdellä komennolla 1 tai useammalla palvelimella. En ollut aiemmin löytänyt helppoa tapaa tehdä tämä PowerShellissä, joten heitin tämän yhteen. Liitin toimintokoodin PowerShell-profiiliini osoitteessa c:\users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profiles.ps1 varmistaakseni, että se ladataan aina, kun käynnistän PowerShell-ikkunan. Skriptin syntaksi on yksinkertainen:

Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2

Palvelun nimi on yksinkertainen merkkijono, ja sen pitäisi olla palvelun lyhyt nimi. ServerNames-vaihtoehdon tulisi olla pilkulla erotettu luettelo palvelimista, joilla palvelu halutaan käynnistää uudelleen. Se voi olla mikä tahansa määrä palvelimia, eli voit käyttää tätä palvelun pysäyttämiseen etänä vain yhdellä palvelimella tai sadalla palvelimella. Palvelun uudelleenkäynnistyksen tuloste näyttää tältä:

Kopioi alla oleva skripti:

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

 }
 }

PowerShell-profiiliisi alla olevaan polkuun. Jos PS1-tiedostoa ei ole siellä, voit luoda sen manuaalisesti:

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

Tallenna ja sulje tiedosto, ja sinun pitäisi olla valmis rokkaamaan!

Vastaa

Sähköpostiosoitettasi ei julkaista.