Powershell-Hilfe, wenn Prozess vorhanden ist, stoppt sie, sonst einen Dienst starten?
-
01-10-2019 - |
Frage
Ich bin ziemlich neu in Powershell. Ich habe 2 verschiedene Skripte Ich bin mit, dass ich in ein Skript kombinieren möchte.
Script 1 hat 1 Zeile
Stop-Process -ProcessName alcore.* -force
Es ist Zweck ist, jeden Prozess zu beenden, dass Begines mit „Alcore.“
Script 2 hat 1 Leitung als auch
Start-Service -displayname crk*
Es beginnt jeden Dienst, der mit crk beginnt.
Wie kann ich diese in einem Skript zu kombinieren? Wenn die Prozesse laufen ich sie stoppen wollen, wenn nicht, möchte ich die Dienste starten. Wie kann ich das erreichen?
Ich versuche, diese aber es funktioniert nicht
$services = Get-Process alcore.*
if($services.Count -qe 1){
Stop-Process -ProcessName alcore.* -force
} else {
Start-Service -displayname crk*
}
Wie kann ich das richtig? Auch sollte ich diese bis in eine Funktion wickeln und die Funktion aufrufen? Das scheint ein wenig saubere. Vielen Dank für jede Hilfe.
Cheers,
~ Ck
Lösung
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*
}
}