PowerShell Help, если процесс существует, остановите его, еще начните службу?
-
01-10-2019 - |
Вопрос
Я довольно новичок в 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*
}
}