PowerShell Help, если процесс существует, остановите его, еще начните службу?

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

Вопрос

Я довольно новичок в PowerShell. У меня есть 2 разных сценария, которые я бегу, что я хотел бы объединить в один скрипт.

Сценарий 1 имеет 1 строку

Stop-Process -ProcessName alcore.*  -force

Это цель - закончить любой процесс, который тянутся с «Alcore».

Сценарий 2 имеет 1 строку, а также

Start-Service -displayname crk*

Начинается любой сервис, который начинается с CRK.

Как я могу объединить их в один скрипт? Если процессы работают, я хочу остановить их, если нет, я хочу начать службы. Как я могу сделать это?

Я пробую это, но это не работает

$services = Get-Process alcore.*

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

    Start-Service -displayname crk*
}

Как я могу сделать это правильно? Также я должен обернуть их в функции и вызывать функцию? Это кажется немного уборщиком. Спасибо за любую помощь.

Ваше здоровье,
~ ck.

Это было полезно?

Решение

Используйте Get-Service, чтобы получить статус услуг. Процесс может быть запущен, но сервис может быть приостановлен:

$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