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-ID: 540721

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

Ausgedruckt am: 24.11.2024 um 19:11 Uhr

142232
Lösung 142232 29.01.2020 aktualisiert um 17:11:44 Uhr
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.
Mullewarf
Mullewarf 29.01.2020 um 19:28:24 Uhr
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.