PowerShellヘルプ、プロセスが存在する場合、それを停止し、それ以外の場合はサービスを開始しますか?

StackOverflow https://stackoverflow.com/questions/3143938

質問

私はPowerShellにかなり初めてです。実行している2つの異なるスクリプトがあり、1つのスクリプトに組み合わせたいと思います。

スクリプト1には1行があります

Stop-Process -ProcessName alcore.*  -force

それは、「アルコア」から始まるプロセスを終了することです。

スクリプト2には1行もあります

Start-Service -displayname crk*

CRKで始まるサービスを開始します。

これらを1つのスクリプトに結合するにはどうすればよいですか?プロセスが実行されている場合、私はそれらを止めたいと思います。そうでない場合は、サービスを開始したいと思います。どうすればこれを達成できますか?

私はこれを試していますが、それは機能していません

$services = Get-Process alcore.*

if($services.Count -qe 1){
    Stop-Process -ProcessName alcore.*  -force
} else {

    Start-Service -displayname crk*
}

どうすればこれを正しく行うことができますか?また、これらを関数にまとめて、関数を呼び出す必要がありますか?それは少しきれいに思えます。助けてくれてありがとう。

乾杯、
〜CK

役に立ちましたか?

解決

GetServiceを使用してサービスステータスを取得します。プロセスは実行されている可能性がありますが、サービスは一時停止される可能性があります。

$services = @(Get-Service alcore.*)
foreach ($service in $services)
{
    if ($service.Status -eq 'Running')
    {
        $service | Stop-Service
    }
    else
    {
        Start-Service -DisplayName crk*
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top