thomasreischer

Batch bzw Software die regelmäßig prüft ob ein bestimmter Prozess läuft oder nicht

Hallo zusammen,

ich bräuchte eine Batch/software die in regelmäßigen Abständen (bspw. 1x am Tag) prüft ob ein bestimmtes Programm (Prozess) aktiv ist oder nicht.

Falls nicht, sollte die Software die Nutzer am Besten per Mail darüber informieren.

Hätte hier jemand eine Idee?

Grüße
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 286223

Url: https://administrator.de/forum/batch-bzw-software-die-regelmaessig-prueft-ob-ein-bestimmter-prozess-laeuft-oder-nicht-286223.html

Ausgedruckt am: 15.05.2025 um 04:05 Uhr

H41mSh1C0R
H41mSh1C0R 21.10.2015 um 10:34:45 Uhr
Goto Top
Trigger ein Powershell Script via Job was den Process prüft und dann via Mail eine Information verschickt:

Beispiel(mit Anpassungsbedarf):

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

if ($proc -imatch 'Notepad.exe')  
{
'Notepad ist aktiv - nix zu tun'  
}
else
{
$SmtpClient = new-object system.net.mail.smtpClient
$MailMessage = New-Object system.net.mail.mailmessage
$SmtpClient.Host = "Exchange.DOMAIN-Struktur"        
$mailmessage.from = "mail-von@unternehmen.de"     
$mailmessage.To.add("mail-an@unternehmen.de")     
$mailmessage.Subject = “Betreff der Nachricht”
$MailMessage.IsBodyHtml = $false
$mailmessage.Body = "Notepad ist nicht aktiv!!"  
$smtpclient.Send($mailmessage)
} 

Ungetestet da meine PS-VM abgeschottet ist.
thomasreischer
thomasreischer 21.10.2015 um 10:48:03 Uhr
Goto Top
Hi,

der E-Mail Versand funktioniert wunderbar, allerdings klappt die Prozess-Erkennung nicht.

Das Script versendet auch eine Mail wenn der entsprechende Prozess aktiv ist.
H41mSh1C0R
Lösung H41mSh1C0R 21.10.2015 aktualisiert um 12:17:20 Uhr
Goto Top
Geht bei mir mit der Anpassung unten.
Füg in den Zweig wo dein Programm xyz nicht läuft den Block für den Mailversand ein und teste es erneut.

$proc = get-process notepad | select -property Responding

if ($proc.Responding -match 'True')  
{
 write-host "Notepad ist aktiv - nix zu tun"  
}
else
{
write-Host "Notepad ist nicht aktiv - Mail wird versendet!"  
}
122990
122990 21.10.2015 um 11:51:20 Uhr
Goto Top
Moin,
@H41mSh1C0R
get-process gibt einen Fehler zurück wenn es den Process nicht findet, dann ist das Objekt $null und dein if fährt dann ebenfalls gegen die Wand.
if((get-process notepad -EA SilentlyContinue)){
    write-host 'Prozess aktiv'  
}else{
   write-host 'Prozess nicht aktiv'  
}
Gruß grexit
thomasreischer
thomasreischer 21.10.2015 aktualisiert um 12:17:15 Uhr
Goto Top
das Script funktioniert es allerdings kann ich es nicht mit der aufgabenplanung starten, da sich ja aus sicherheitsgründen nur der editor öffnet :/

auch mit den Parametern führt er mir das script nicht aus..

Er spuckt nur die Fehlermeldung "Unzulässige Funktion" aus

EDIT: So jetzt läuft es - musste nur PS Scripte zulassen, die lokal erstellt wurden.
122990
122990 21.10.2015 aktualisiert um 12:19:50 Uhr
Goto Top
da sich ja aus sicherheitsgründen nur der editor öffnet :/
Powershell Anfänger so wie ich das sehe ...
Les dir mal dieses Kommentar durch wie man PS -Skripte über den Taskplaner startet !
Ab dem Topic "Starten von PS-Scripten in der Aufgabenplanung (Taskplaner)": Anleitung: Wie starte ich Powershell-Scripte