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
保存してファイルを閉じると、ロックする準備ができます!
。