MICROLINC - Probleme suchen Lösung
Zurück   Home

Powershell - Überwachung und Neustart eines Tasks (KeepProcessAlive)

  -  14.07.2014 - 21:05
Menü

Home
Microsoft Small Business Server 2011 Standard
Hardware
Windows
MS Office
Projekte

Mehrwertsteuerrechner

Gästebuch

Pingtool

Warenwirtschaft

Password Expiration Reminder

Java Update Disabler

Briefkopf in PDF kombinieren FreePDF

Microsoft Exchange Management Shell Skripte

php-Tipps

3G-Failover Lösungen (mit Webserveranbindung & Exchange)

KeepProcessAlive

ActiveSync User und Devices über Active Directory auslesen

PowerShell SMTP Client TLS Tester

Support
Download
Peripherie
Sonstiges (Off-Topic)
Telefonie
Windows 8
Windows Mobile
Security-Software
DATEV
Virtualisierung Oracle virtualbox
nginx
Kryptographie
hMailServer
Android
Novell
Exchange
Server 2012 R2
AD Certificate Service (PKI) / Zertifizierungsstelle
System Center
Blackberry
Microsoft Flow
Virtualisierung Microsoft Hyper-V
Ubiquiti
3CX
OneDrive


 
Autor:Thomas Windscheif last edit:03.08.2015 16:08

Link zu diesem Beitrag:


[Druckansicht]

Zum Download

Manche Anwendungen verfügen programmseitig nicht über eine Möglichkeit als Dienst integriert zu werden.
Auch kann man manche Anwendungen nicht hart via "sc create" als Dienst integrieren, bzw. die Anwendungen reagieren nicht auf die Steuerungsanforderungen.

Eine mögliche Lösung wäre die Verwendung der Aufgabenplanung. Dies funktioniert soweit auch ganz gut. Aber bei Fehlern (z. B. Programmabsturz) wird der Task nicht automatisch neu gestartet (eine Option die man bei Diensten konfigurieren kann). Als Workaround habe ich ein Powershell-Skript geschrieben
welches ebenfalls als Task in Intervallen gestartet wird und im Verlauf das Vorhandensein eines definierbaren Prozesses überprüft. Sollte der Prozess nicht ausgeführt werden, wird über ein Aufruf mittels "schtasks" der "beendete Task" neu gestartet.
Sobald das Skript feststellt, dass der Prozess nicht mehr aktiv ist, wird eine Benachrichtigung per E-Mail versandt. Wenn der Prozess trotz Neustartversuch nicht startet, wird erneut eine Negativ-Meldung via E-Mail verschickt.

Voraussetzungen
- Der "Prüf"-Task muss mit Administrator-Rechten ausgeführt werden
(unter Windows Server 2008 R2; leider haben unprivilegierte Benutzer nicht das Recht mittels "schtasks" Tasks zu starten)
- Entweder deaktivieren Sie die ExecutionPolicy für Poweshell (http://technet.microsoft.com/en-us/library/hh849812.aspx) oder signieren Sie das Skript

Funktionsweise des Skripts
  1. Das Skript fragt via cmdlet "Get-Process" ab, ob ein definierbarer Prozess aktiv ist.

  2. Wenn der Prozess nicht aktiv ist, wird eine Info-E-Mail mit hoher Priorität an eine definierbare E-Mail-Adresse versandt

  3. Nachfolgend wird ein Neustart des definierbaren Tasks mittels "schtasks" versucht.

  4. Sollte dies scheitern, erfolgt eine weitere Info-Mail mit hoher Priorität.

  5. Sollte der Neustart erfolgreich gewesen sein, erfolgt eine normal priorisierte Benachrichtigung per E-Mail.


Anwendung
  1. Kopieren Sie das Powershell-Skript auf den Client/Server bei dem ein Prozess überwacht werden soll

  2. Erstellen Sie - sofern nicht bereits angelegt - in der Aufgabenplanung eine Aufgabe, welche die eigentliche Anwendung startet, die überwacht werden soll.
    Notieren Sie sich den Namen des Tasks.

  3. Erstellen Sie eine weitere Aufgabe in der Aufgabenplanung.


  4. Definieren Sie den Benutzer mit dessen Rechten der Task ausgeführt werden soll (Administrator-Rechte)

  5. In dem Reiter "Aktionen" klicken Sie auf "Neu..."



  6. Unter "Programm/Skript:" tragen Sie den Pfad zur Powershell-Anwendung an:
    Hier: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe


  7. Unter "Argumente hinzufügen (optional):" tragen Sie -command "PFAD und Dateiname des Powershell-Skripts" ein.
    Hier: -command "C:\sys\KeepProcessAlive.ps1"

  8. Unter dem Reiter "Trigger" legen Sie ein Intervall fest, wie oft das Skript ausgeführt werden soll bzw. wie oft eine Prüfung der Ausführung des Prozesses geprüft werden soll. (Aufgabe starten bei "Beim Start", Verzögern für: "20 Minuten", Wiederholen jede "10 Minuten", Für die Dauer von: "Sofort".

  9. Klicken Sie auf "OK", Sie werden zur Eingabe des Passworts für den hinterlegten Benutzers gebeten.

  10. Öffnen Sie die heruntergeladene Datei und ändern Sie die Werte der nachfolgenden Variablen entsprechend Ihrer Umgebung:
    1. processname: Hier tragen Sie den Namen des zu überwachenden Prozesses (siehe Taskmanager) ohne die Dateierweiterung an (z. B. für Explorer.exe geben Sie Explorer ein)

    2. smtpsrvname: Hier tragen Sie den DNS-Namen oder die IP-Adresse Ihres E-Mail-Servers ein.

    3. smtpport: Tragen Sie hier den Port für die SMTP-Schnittstelle des E-Mail-Servers ein (Standard: 25)

    4. mailsender: Tragen Sie hier die Absender-E-Mail-Adresse ein.

    5. mailreceiver: Tragen Sie hier die Empfänger-E-Mail-Adresse ein.

    6. starttask: Tragen Sie hier den Namen des Tasks (siehe Punkt 2) ein, welcher gestartet werden soll, sobald der Prozess nicht mehr ausgeführt wird




Ich habe das Skript in einer Windows Server 2008 R2-Umgebung getestet und keine Fehler festgestellt. Trotzdem sollten Sie das Skript zuvor in einer Testumgebung evaluieren. Sollten Sie Fehler entdecken oder Verbesserungsvorschläge haben, würde ich mich über Feedback von Ihnen freuen.

aktuelle Downloads
Download
-> KeepProcessAliveV1.3.zip (Version 1.3) ~ 1,19 KB
-> KeepProcessAliveV1.2.zip (Version 1.2) ~ 1,18 KB



Über den Autor
Thomas Windscheif arbeitet bei excITe Consulting und ist langjähriger Berater im Bereich IT-Infrastruktur und Groupware. Sowohl Kleinunternehmen z. B. im Handwerk als auch der größere fertigende Mittelstand gehören zu seinem Projektumfeld. Im Wesentlichen gehören die Planung von Infrastruktur-Migrationen (Novell/Micro Focus, Microsoft), Cloud-Lösungen (Office365), Groupware-Umgebungen (z. B. Exchange) und deren Umsetzung zu seinen Aufgaben. Neues begeistert ihn aber ebenso und so unterstützt Thomas Windscheif auch bei themenfremden IT-Systemen, überall da wo er helfen kann.

Sein Ziel: Die Mehrwerte der heutigen IT-Lösungen für einfacheres und modernes Arbeiten beim Kunden einbringen.





Login


QuickTag:  

 
Sie haben ein ungelöstes Problem in Ihrer Exchange Server oder Microsoft-Infrastruktur?
Treten Sie gerne mit mir in Kontakt. Sowohl bei einfachen Exchange Installationen, als auch bei hochverfügbaren, lastverteilten Mehrstandort-DAG-Topologien mit Loadbalancern unterstütze ich Sie -auch kurzfristig- sehr gerne.

Nutzen Sie den Live Chat, xing, LinkedIn, das Kontaktformular oder den Mailkontakt

[News als RSS-Feed abonnieren]
News

vom 16.09.2019 - 17:48


- Windows Server 2019 - LDAP out of memory exception -

Aktuelle Versionen von Windows Server 2019 laufen bei LDAP Abfragen mit Gruppenauflösung (1.2.840.113556.1.4.1941) auf einen out of memory-Fehler. Laut einem Microsoft-Mitarbeiter soll das Problem aber im kommenden September-Update behoben werden (KB4516077).

Unter folgendem Link kann man die Diskussion im Microsoft Social TechNet verfolgen:
https://social.technet.microsoft.com/Forums/windowsserver/en-US/4f14412f-dd81-4b9a-b6b5-aa69100e87d0/intermittent-not-enough-space-errors-when-doing-ldap-queries-against-2019-domain-controller?forum=winservergen

Leider kann man in den offiziellen Kanälen zu dem KB-Artikel noch nichts finden.


Weitere News:

3CX V16 Call Control API mit PowerShell Core


vom 25.04.2019 11:41


Exchange Online SMTP TLS Report


vom 15.02.2019 18:04


TLS-Test für SMTP mit PowerShell


vom 10.12.2018 11:47


3CX Secure SIP via DIRECT-STUN mit yealink T46S


vom 08.09.2018 15:35


Exchange 2016 CU10


vom 25.06.2018 15:21


Apple iCloud Addin stört Outlook Kalenderfunktionen


vom 18.10.2017 13:24


.NET 4.7 released - Bitte nicht auf Exchange Servern installieren


vom 13.06.2017 21:52


Troubleshooting Exchange Health Manager Sensoren


vom 16.05.2017 21:06


Exchange 2016 - ActiveSync-Lesebestätigungen können nun unterdrückt werden


vom 09.03.2017 18:28


Exchange - Informationen an Dritte einschränken


vom 20.02.2017 01:53


Einen guten Start in das neue Jahr


vom 31.12.2016 19:21


Smart App Banner für OWA entfernen


vom 09.09.2016 20:15


Neue Version des Berechtigungsvererbungsskript für Exchange released


vom 17.05.2016 19:34


LogParser für Exchange SMTP-Logs


vom 16.05.2016 00:48


Exchange Healthmailboxen neu anlegen


vom 25.03.2016 16:28


Retention Policy auf Healthmailboxen anwenden


vom 24.03.2016 20:52


Exchange Schemaversionen auf allen DCs abfragen


vom 24.03.2016 16:37


Neue Versionen des Berechtigungsvererbungsskripts


vom 27.09.2015 19:04


Exchange 2013 Mapi over HTTP Diagnose


vom 20.09.2015 20:42



[alle News auflisten]
Sitemap - Kontakt - Datenschutz & Disclaimer - Impressum