2

私はPowershellにかなり慣れていません。実行中の 2 つの異なるスクリプトを 1 つのスクリプトに結合したいと考えています。

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

Stop-Process -ProcessName alcore.*  -force

その目的は、「alcore」で始まるすべてのプロセスを終了することです。

スクリプト 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

4

1 に答える 1

6

Use Get-Service to get the service status. The process could be running but the service might be paused:

$services = @(Get-Service alcore.*)
foreach ($service in $services)
{
    if ($service.Status -eq 'Running')
    {
        $service | Stop-Service
    }
    else
    {
        Start-Service -DisplayName crk*
    }
}
于 2010-06-29T19:29:57.737 に答える