thomasreischer
Goto Top

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

Content-Key: 286223

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

Printed on: April 23, 2024 at 10:04 o'clock

Member: H41mSh1C0R
H41mSh1C0R Oct 21, 2015 at 08:34:45 (UTC)
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.
Member: thomasreischer
thomasreischer Oct 21, 2015 at 08:48:03 (UTC)
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.
Member: H41mSh1C0R
Solution H41mSh1C0R Oct 21, 2015 updated at 10:17:20 (UTC)
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!"  
}
Mitglied: 122990
122990 Oct 21, 2015 at 09:51:20 (UTC)
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
Member: thomasreischer
thomasreischer Oct 21, 2015 updated at 10:17:15 (UTC)
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.
Mitglied: 122990
122990 Oct 21, 2015 updated at 10:19:50 (UTC)
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