Vzdálené restartování služby pomocí prostředí PowerShell na více serverech

Dal jsem dohromady rychlou funkci prostředí PowerShell, která by mi umožnila restartovat jednu službu na 1 nebo více serverech jedním příkazem. Předtím jsem nenašel jednoduchý způsob, jak to v prostředí PowerShell udělat, tak jsem hodil dohromady tohle. Kód funkce jsem vložil do svého profilu PowerShell na adresu c:\users\%USERNAME%\Documents\WindowsPowershell\Microsoft.PowerShell_profiles.ps1, aby se načetl při každém spuštění okna PowerShell. Syntaxe skriptu je jednoduchá:

Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2

Název služby je jednoduchý řetězec a měl by to být krátký název služby. Parametr ServerNames by měl být čárkou oddělený seznam serverů, na kterých chcete službu restartovat. Může to být libovolný počet serverů, což znamená, že pomocí této položky můžete vzdáleně zastavit službu pouze na 1 serveru nebo na 100 serverech. Výstup restartované služby vypadá takto:

Zkopírujte níže uvedený skript:

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

 }
 }

Do svého profilu PowerShell na níže uvedené cestě. Pokud tam soubor PS1 není, můžete jej vytvořit ručně:

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

Soubor uložte a zavřete a měli byste být připraveni k akci!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.