gelöst Mit Powershell zwei Prozesse mit gleichem Prozessname und unterschiedlichen Parameter überprüfen und ggf. erneut starten

Mitglied: DarkFire

DarkFire (Level 1) - Jetzt verbinden

08.08.2020 um 16:05 Uhr, 338 Aufrufe, 8 Kommentare

Hallo Zusammen,

ich versuche seit Stunden zwei Prozesse mit gleichem Prozessname, gleichen Verzeichnis in WIn10 mittles Powershell zu überprüfen ob diese jeweils noch laufen, und ggf. erneut zu starten.

Den einzigen Unterschied mit dem ich was anfangen könnte, den ich im Taskmanager sehe, fand ich unter Details, die Spalte "Befehlszeile":

Für den ersten Prozess:
"C:\Users\Programm Test.exe" /ident=0
Für den zweiten Prozess:
"C:\Users\Programm Test.exe" /ident=1


Hatte folgendes programmiert, hat aber nicht zum Erfolg geführt:

$Program = '"C:\Users\Programm Test.exe"'
$Arg0 = '/ident=0'
$Arg1 = '/ident=1'

if (!(get-Process | ?{$_.commandline -eq „$Program“,“$Arg0“ -join “ „})){Start-Process „$Program“,“$Arg0“ -join “ „}
else {Write-Host "Prozess wird aktuell ausgeführt"}

if (!(get-Process | ?{$_.commandline -eq „$Program“,“$Arg1“ -join “ „})){Start-Process „$Program“,“$Arg1“ -join “ „}
else {Write-Host "Prozess wird aktuell ausgeführt"}


Hätte da jemand eine Idee? Vielen Dank im Voraus,

Viele Grüße
Mitglied: SeaStorm
08.08.2020, aktualisiert um 18:09 Uhr
Hi

Startest du die Prozesse Initial auch mit Powershell? Wenn ja, dann kannst du die PID prüfen.
Wäre auch viel effizienter weil dann nicht jedes Mal alle Prozesse durchsucht werden müsste
Bitte warten ..
Mitglied: DarkFire
08.08.2020 um 18:19 Uhr
Hi,

ja ich öffne die Programme bei jedem Windows-Start über die Aufgabenplanung mit Powershell.
Was müsste ich da programmieren, damit die PID bei Programmstart abgefragt werden, und diese PID nach Start überprüft werden?

Vielen Dank
Bitte warten ..
Mitglied: SeaStorm
08.08.2020 um 18:41 Uhr
Einfach $var = Start-Process .....
Dann enthält var die property ID:
$var.id
Bitte warten ..
Mitglied: DarkFire
08.08.2020 um 22:51 Uhr
Danke für die schnelle Antowrt, ich habe das versucht mit der PID so umzusetzen wie ich es verstanden habe, aber leider läuft das so wie ich das gemacht habe leider nicht optimal. So wie ich es aktuell habe startet er jedes Programm je zweimal:


$ProcessName = "Programm Test"
$proc = Get-Process | Where-Object {$_.ProcessName -eq "Programm Test"}

if ($proc -imatch 'Programm Test')
{
'"Programm Test" ist aktiv - nix zu tun'
}
else
{
'"Programm Test" ist nicht aktiv - wird gestartet'
$Cmd = "C:\Users\Programm Test.exe"
  1. Starte für ident=0
$Arg0 = '/ident=0'
$var0 = Start-Process $Cmd -ArgumentList $Arg0
  1. Starte für ident=1
$Arg1 = '/ident=1'
$var1 = Start-Process $Cmd -ArgumentList $Arg1

if (!(get-Process | ?{$_.id -eq $var0.id})){Start-Process $Cmd -ArgumentList $Arg0}
else {Write-Host "Prozess wird aktuell ausgeführt"}

if (!(get-Process | ?{$_.id -eq $var1.id})){Start-Process $Cmd -ArgumentList $Arg1}
else {Write-Host "Prozess wird aktuell ausgeführt"}
}

Viele Grüße
Bitte warten ..
Mitglied: SeaStorm
08.08.2020 um 23:04 Uhr
Oh... ich hab -Passthru vergessen. Und deine Abfrage auf den Prozess hab ich mal angepasst
Bitte warten ..
Mitglied: DarkFire
09.08.2020 um 08:43 Uhr
Guten Morgen,

vielen Dank für die schnelle Antwort, funktioniert nun teilweise.
Was mir jetzt beim Testen aufgefallen ist, sobald ein Programm von den zwei geschlossen wird, dann wird das nicht mehr gestartet, da ja ein Porcess mit dem gleichen schon Namen läuft, wenn ich das wie unten machen:

$ProcessName = "Programm Test"
$proc = Get-Process | Where-Object {$_.ProcessName -eq "Programm Test"}
if ($proc -imatch 'Programm Test')

Gibt es da eine Möglichkeit das anderst zu machen? Hatte erst überlegt zwei *ps1-Dateien zu machen, aber dann müsste auch immer gefragt werden, ob der Porzess läuft?

Vielen Grüße
Bitte warten ..
Mitglied: 145033
LÖSUNG 10.08.2020, aktualisiert um 11:50 Uhr
Erst einmal: Die Eigenschaft commandline gibt es in den zurückgelieferten Objekten von Get-Process nicht, deswegen kann das Skript nicht funktionieren. Diese Eigenschaft wird nur bei der Abfrage der Prozesse über WMI oder CIM zurückgeliefert.

Gibt es da eine Möglichkeit das anderst zu machen?
Es gibt immer 1000 und 1 Weg nach Rom... Hier mal eine mögliche Variante:
Bitte warten ..
Mitglied: DarkFire
10.08.2020 um 17:39 Uhr
Hallo,

vielen Dank für eure Antworten und Hilfe, ein wirklich sehr tolles Forum!

@kleiber, vielen Danke so funktioniert es. Auf sowas wäre ich nie gekommen, trotz viele Seiten wo ich jetzt stundenlang gelesen habe,

Viele Grüße
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell: Textdatei bei denen zwei Spalten gleich und eine dritte unterschiedlich ist entfernen

gelöst Frage von runner-ralfBatch & Shell4 Kommentare

Hallo alle zusammen, ich habe eine Textdatei auto.txt in der es drei Spalten(getrennt durch Semikolon gibt) Header: Name; Version; ...

Batch & Shell

An "Start" anheften - Powershell

Frage von today12Batch & Shell9 Kommentare

Hallo Leute, ich versuche mittels Powershell einen Ordner in Start anzuheften. Ich verfolge gerade die Methode über das "Kontextmenü" ...

Windows Server

Terminalserver 2012 RDP aus zwei Netzen unterschiedlich schnell

Frage von ToddyEatWorldWindows Server1 Kommentar

Moin, habe ein Problem mit einem Terminalserver 2012. Auf dem Server ist ein Terminalserver installiert, dieser Server ist nicht ...

Batch & Shell

Powershell start-process cmd mit Parametern

gelöst Frage von mschaedler1982Batch & Shell4 Kommentare

Hallo zusammen, wahrscheinlich wieder nur ein kleines Problem Ich will aus PowerShell einen start-process Befehl abschicken unter cmd funktioniert ...

Windows Tools

EmoCheck: start per Powershell und Eventlog

Anleitung von BadgerWindows Tools9 Kommentare

Seit kurzem kann man mit dem Tool EmoCheck nach spezifischen Prozessen von Emotet Ausschau halten. Mehr Details dazu auf ...

Batch & Shell

Powershell - Zwei XML miteinander verschmelzen

gelöst Frage von KraemerBatch & Shell8 Kommentare

Moin zusammen, kennt einer von euch eine performante™ Lösung um zwei XML-Dateien per Powershell miteinander zu verschmelzen? Aufbau Datei ...

Heiß diskutierte Inhalte
Notebook & Zubehör
Macbook oder Surface Book 3?
gelöst Frage von FamousDex089Notebook & Zubehör36 Kommentare

Hallo Zusammen :-), ich bin komplett neu in der IT Admin schiene und neu in diesem Forum. Ich habe ...

Outlook & Mail
Outlook App auf Android
gelöst Frage von PeterGygerOutlook & Mail21 Kommentare

Hallo Folgende Situation: Samsung S3 Samsung S5 Mini Die Microsoft Outlook App kann nicht mehr gestartet werden. Es waren ...

Humor (lol)
So eine Art Jobangebot
Frage von Melvin.van.HorneHumor (lol)17 Kommentare

Moin, ich habe eben eine Zeit damit zugebracht eine GPO für eine Gruppe von Clients zu erstellen. Egal was ...

SAN, NAS, DAS
Probleme mit der GIGABIT Leitung - Finden der Krücke - Wer ist schuld ?
gelöst Frage von daswinimramSAN, NAS, DAS16 Kommentare

Hallo Community , folgender Aufbau : "erfolgreich" umgestellt auf Gigabit Tarif am 26.09.20 Speedtests wurden von allen PCs hinter ...

Windows Server
AD (virtualisiert) und alle angeschlossenen Clients fahren ungeplant herunter
Frage von tobitobsnWindows Server16 Kommentare

Ich habe aktuell ein Problem, dass ein frisch aufgesetzer Hyper-V mit einem virtualisierten AD regelmäßig 1x die Woche herunterfährt ...

Switche und Hubs
Kaufberatung (10G) Switche für Unternehmensnetzwerk
Frage von ipzipzapSwitche und Hubs15 Kommentare

Moin, unsere Firma zieht um und am neu renovierten Standort muss/soll alles neu. Auf drei Etagen stehen Racks, in ...

Berechtigungs- und IdentitätsmanagementBerechtigungs- und IdentitätsmanagementWebdienste und -serverWebdienste und -serverDatenbankenDatenbankenMonitoring & SupportMonitoring & SupportHybrid CloudHybrid CloudSmall Business ITSmall Business IT