PowerShell ayuda, si existe proceso, detenerlo, de lo contrario iniciar un servicio?
-
01-10-2019 - |
Pregunta
Soy bastante nuevo en Powershell. Tengo 2 guiones diferentes Estoy corriendo que me gustaría combinar en una sola secuencia de comandos.
Script 1 tiene 1 línea
Stop-Process -ProcessName alcore.* -force
Es propósito de es poner fin a cualquier proceso que Begines con "Alcore".
Script 2 tiene 1 línea, así
Start-Service -displayname crk*
Se inicia ningún servicio que comienza con CRK.
¿Cómo puedo combinarlas en una sola secuencia de comandos? Si los procesos se están ejecutando deseo de detenerlos, si no, me gustaría iniciar los servicios. ¿Cómo puedo lograr esto?
Estoy tratando de esto, pero no está funcionando
$services = Get-Process alcore.*
if($services.Count -qe 1){
Stop-Process -ProcessName alcore.* -force
} else {
Start-Service -displayname crk*
}
¿Cómo puedo hacer esto correctamente? También debería envolver éstos en una función y llamar a la función? Eso parece un poco más limpia. Gracias por cualquier ayuda.
Saludos, España ~ Ck
Solución
Uso Get-Service para obtener el estado del servicio. El proceso podría estar en ejecución pero el servicio podría ser pausado:
$services = @(Get-Service alcore.*)
foreach ($service in $services)
{
if ($service.Status -eq 'Running')
{
$service | Stop-Service
}
else
{
Start-Service -DisplayName crk*
}
}