Restart a Service Remotely Using PowerShell on Multiple Servers

1 つのコマンドで複数のサーバー上の 1 つのサービスを再起動できるようにする PowerShell 関数をすばやく作成しました。 以前、PowerShell でこれを行う簡単な方法を見つけられなかったので、これを一緒に作りました。 私がしたことは、関数コードを私のPowerShellプロファイルのc: \users%USERNAME%Documents﹑WindowsPowershell﹑Microsoft.PowerShell_profiles.ps1 に貼り付け、PowerShellウィンドウを起動するたびに読み込まれるようにすることでした。 スクリプトの構文は単純です。

Restart-MultipleServerServices -ServiceName MSExchangeTransport -ServerNames Server1,Server2

The service name is a simple string, and should be the short name of the service.サービス名は単純な文字列で、サービスの短い名前にします。 ServerNames オプションは、サービスを再起動するサーバーのコンマ区切りリストである必要があります。 これは任意の数のサーバーを指定できます。つまり、1台のサーバーだけでなく100台のサーバーのサービスをリモートで停止する場合にも使用できるのです。 サービスが再起動されたときの出力は次のようになります:

以下のスクリプトをコピーしてください。

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 プロファイルに、以下のパスで挿入します。 PS1 ファイルがない場合は、手動で作成できます。

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

保存してファイルを閉じると、ロックする準備ができます!

コメントを残す

メールアドレスが公開されることはありません。