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

PowerShell Postfix Transport Log Parser

Auslesen der Allow-List aus KEMP-Loadbalancer via PowerShell

Backup Script Stotax-Datenbanken nach Hidrive

PowerShell - Active Directory Schema GUIDs und Ldap-Namen

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
PowerShell
Azure
HAProxy
Defender
Teams
ESET Protect
BookStack


 
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, Cloud-Lösungen (Microsoft 365), Groupware-Umgebungen (z. B. Exchange) und deren Umsetzung zu seinen Aufgaben. Insbesondere im Umfeld hybrider Identitätsumgebungen mit Entra Connect und den Möglichkeiten zur Härtung der IT-Landschaft konnte er in vielen Projekten Erfahrungen sammeln. 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 22.09.2024 - 14:29


- Spontaner Administrationsverlust unter Exchange Online - Und wie man es behebt! -

Zweimal in diesem Jahr hatte ich bei Kunden das Phänonem, dass spontan bestimmte Administrationsrechte unter Exchange Online fehlten, trotz der Rollenmitgliedschaft "Globaler Administrator" bzw. "Exchange Administrator".

Aus ungeklärten Gründen waren verschiedene RBAC-Rechte unter Exchange Online für "Organization Management" spontan verschwunden.

Im folgenden Artikel löse ich das Problem mit Skripten und erläutere das Vorgehen

https://www.microlinc.de/index.php?lev1=25&lev2=41&id=475


Weitere News:

UPDATE - PowerShell Exchange Vererbung Postfachordnerberechtigungen


vom 28.07.2024 17:18


Safe Sender List unter Outlook leeren - Praktische Umsetzung


vom 06.11.2023 18:05


Exchange Online Protection und die Safe Sender List


vom 26.10.2023 15:06


Exchange Online - Abschaltung Remote PowerShell Session (RPS)


vom 25.08.2023 14:37


Tool zum Konvertieren von Agfeo-Adressbüchern nach 3CX


vom 01.05.2023 16:47


Das Ende der Standardauthentifizierung - Wie bereite ich mein Unternehmen vor?


vom 03.08.2022 15:19


Sharepoint-Kalender unter Team freigeben


vom 17.07.2022 17:41


Exchange Update HAFNIUM-Exploit


vom 09.03.2021 09:27


Windows Server 2019 - LDAP out of memory exception


vom 16.09.2019 17:48


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



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