mullewarf
Goto Top

Powershell Programm starten wenn es nicht läuft

Moin,
ich habe die Aufgabenstellung bekommen, dass ich in Powershell ein Script schreiben soll.
Dieses soll ein Programm starten, wenn es nicht läuft. Mein Script funktioniert auch ich möchte das If-Statement nun aber gerne in die Pipe einfügen.


Mein Scrip:
$ProcessName = "Prozessname"  
$Program = "Programmpfad"  

$CheckProcess = Get-Process | Where-Object {$_.ProcessName -eq $ProcessName}

If($CheckProcess -eq $null){

start $Program

} 

else {
Write-Host "Prozess wird ausgeführt"  
}

Ich bin über jede hilfe dankbar.

Content-Key: 540721

Url: https://administrator.de/contentid/540721

Printed on: April 24, 2024 at 19:04 o'clock

Mitglied: 142232
Solution 142232 Jan 29, 2020 updated at 16:11:44 (UTC)
Goto Top
ich möchte das If-Statement nun aber gerne in die Pipe einfügen.
Ist hier Unsinn, denn die Pipe gibt ja in dem Fall nichts zurück und wird dementsprechend auch nicht weitergeführt face-smile, und hier brauchst du eigentlich auch keine Pipe, denn Get-Process kann dir schon den Prozess nach Name ausfiltern.

Ergebnis:
if (!(Get-Process -Name $ProcessName -EA SilentlyContinue)){start $program}
Wenn du unbedingt eine Pipe haben willst (warum auch immer) kannst du so ein Konstrukt bauen
(Get-Process -Name $ProcessName -EA SilentlyContinue).Count | ?{$_ -eq 0} | %{start $program}
Was von beiden aber jetzt besser verständlich ist siehst du sicher selbst face-wink, eine Pipe bringt dir hier in deinem Fall keinerlei Vorteile.
Member: Mullewarf
Mullewarf Jan 29, 2020 at 18:28:24 (UTC)
Goto Top
Dankeschön.
Ich wollte im großen und ganzen eigentlich nur einen einzeiligen Befehl daraus machen und dachte ich könnte das mit einer Pipe machen, da ich noch nicht so viel Erfahrung mit Powershell habe. Macht jetzt wo ich nochmal drauf gestoßen wurde aber auch Sinn, da ich ja aus meiner Pipe oben nicht die Werte zurückbekomme die ich für die If-Abfrage brauche.