PowerShell-Skripte als Windows-Dienste ausführen mit Always Up von CoreTechnologies

Möchte man erreichen, dass ein PowerShell kontinuierlich ausführt und bereits mit dem Windows-Start startet, genügt es im einfachsten Fall, eine Verknüpfung auf Powershell.exe im Autostart-Ordner anzulegen, die Ps1-Datei über den File-Schalter festzulegen und in das Skript eine Endlosschleife einzubauen, die dafür sorgt, dass es nicht von alleine wieder seine Ausführung beendet. Oft ist diese Sparversion vollkommen ausreichend. Wer eine etwas robustere Variante bevorzugt, bei der sich auf Wunsch auch ein Systemkonto auswählen lässt, unter dem das Skript ausgeführt wird, macht aus dem PowerShell-Skript einen Systemdienst. Ob das Skript einen Port oder ein Verzeichnis überwacht und bei jeder Aktivität z.B. eine Meldung in das Ereignisprotokoll schreibt, spielt dabei keine Rolle.

Für die Umsetzung sind keinerlei Programmierkenntnisse erforderlich. Es gibt eine erstaunlich große Auswahl an Tools, die einem die Arbeit abnnehmen. Eines davon ist der PowerGUI Script Editor als Teil von PowerGUI, bei jedem jedes Skript wahlweise als Exe-Datei oder als Systemdienst gespeichert werden kann, der anschließend per New-Service-Cmdlet nur noch registriert werden muss.

Eine Alternative ist das (kommerzielle) Tool AlwaysUp von CoreTechnologies Consulting, einer kleinen Softwarefirma aus Oakland, einem „Vorort“ von San Francisco in den USA. Die Aufgabe des Tools ist es, die Ausführung einer beliebigen Anwendung als Dienst zu ermöglichen, der mit dem Erstellen auch registriert wird und anschließend startet. Das Tool kann aber auch einiges mehr. Unter anderem überwacht es die Ausführung des Dienstes und führt eine Aktion aus, wenn z.B. der Speicherbedarf einen zuvor festgelegten Wert überschreitet. Wer möchte, kann in diesem Fall auch ein (weiteres) Powershell-Skript starten. Sind Dialogfelder involviert, die ausgefüllt oder weggeklickt werden müssen, geht es mit AutoIt eventuell etwas einfacher. Wer ein PowerShell-Skript als Dienst ausführen möchte, führt (natürlich PowerShell.exe aus und legt den Pfad der Ps1-Datei über den File-Schalter fest. Damit das Ausführen von Profilskripten die Ausführung nicht verzögert, setze ich den NoProfile-Schalter voraus.

Insgesamt macht Always Up einen sehr guten Eindruck. Das Tool kostet knapp 50 US$ (Preisangabe ohne Gewähr). Auf der Webseite des Herstellers gibt es eine Version, die 30 Tage getestet werden kann:

http://www.coretechnologies.com/

Always Up führt jede Anwendung als Windows-Dienst auch, wenn es unbedingt sein muss, auch ein PowerShell-Skript

Always Up führt jede Anwendung als Windows-Dienst auch, wenn es unbedingt sein muss, auch ein PowerShell-Skript

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.