Prozesse zeitgesteuert beenden per PowerShell

Mit Hilfe der Aufgabenplanung und der Windows PowerShell lassen sich Dienste und Prozesse zeitgesteuert beenden.

DQo8cD48YnIvPg0KPHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzIj48L3NjcmlwdD4NCjwhLS0gVEVDSEZBUSAtIEltIEFydGlrZWwgLS0+DQo8aW5zIGNsYXNzPSJhZHNieWdvb2dsZSINCiAgICAgc3R5bGU9ImRpc3BsYXk6YmxvY2siDQogICAgIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItOTI5NDg1MzEyMDc1NDI3OSINCiAgICAgZGF0YS1hZC1zbG90PSI1MDc3NjQ3MTY5Ig0KICAgICBkYXRhLWFkLWZvcm1hdD0iYXV0byI+PC9pbnM+DQo8c2NyaXB0Pg0KKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsNCjwvc2NyaXB0Pjxici8+PC9wPg0K

PowerShell und Aufgabenplanung – Prozesse zeitgesteuert beenden

Mit Hilfe der PowerShell ist es nicht nur möglich Rollen und Features eines Windows Servers zu verwalten, es lassen sich auch viele praktische Hilfsmittel für die tägliche Administration damit erstellen. Eine Funktion, die mir bereits oft weiter geholfen hat, ist die Möglichkeit, Windows Prozesse zeitgesteuert beenden zu können.

Gründe, weshalb ein bestimmter Prozess oder Dienst beendet werden muss, gibt es zuhauf: Beispielsweise das Durchführen einer konsistenten Datensicherung oder der Neustart eines Dienstes zu einer bestimmten Uhrzeit.

Ein immer wiederkehrender Fall aus meiner Praxis ist z.B. die Anwendung CodeTwo Email Signatures in Kombination mit einem Windows Terminalserver. Der Client, welcher die Signaturen zuverlässig in die Benutzerprofile importiert, kann auf dem Terminalserver nur von einem Benutzer gleichzeitig ausgeführt werden. Bedeutet: derjenige, der sich zuerst anmeldet, erhält die aktuellen Signaturänderungen. Alle anderen nicht, weil der Prozess bereits in Anwendung ist. Hier helfe ich mir damit, den Prozess mit der PowerShell zeitgesteuert zu beenden. Anschließend ist dieser für die nächsten Anmeldungen wieder verfügbar.

Der Befehl zum Beenden eines Prozesses lautet: Stop-Process. Das vollständige Kommando zum Beenden (z.B. von Microsoft Outlook) lautet:

Stop-Process -Name Outlook

In Kombination mit der Windows Aufgabenplanung sieht das Ganze dann folgendermaßen aus:

Prozesse zeitgesteuert beenden per PowerShell

Mit der Windows Aufgabenplanung ist es möglich, PowerShell Befehle zeit- oder ereignisgesteuert auszuführen.

Auf diese Weise lassen sich Prozesse auf die Sekunde genau beenden. Im obigen Beispiel beende ich den Email Signatures zum Beispiel automatisch mit einer Minute Verzögerung bei jeder Benutzeranmeldung. Diese Zeitspanne reicht aus, um die Signaturen zu aktualisieren ehe der Prozess wieder beendet wird.

Sollen Prozesse anderer Benutzer beendet werden, ist der Parameter -force hinzuzufügen. Dadurch wird die Rückfrage vor dem Beenden unterdrückt. Fehlt dieser Parameter, wird die Aufgabe nicht beendet, da die PowerShell im Hintergrund auf eine Eingabe wartet.

Der vollständige Befehl würde dann lauten:

Stop-Process -Name Outlook -force

Um Prozesse zeitgesteuert beenden zu können, bedarf es also keiner komplizierten Skripte. Das Starten von Prozessen ist im Übrigen mit Start-Process möglich.

Wichtig: Mit dem obigen Beispiel werden ALLE Prozesse mit dem angegebenen Namen beendet. Auf Systemen, an denen mehrere Benutzer angemeldet sind, würden die gleichnamigen Prozesse aller aktiven Benutzer beendet werden. Hier empfiehlt es sich, den Befehl mit dem Parameter -ID statt -Name zu verwenden und die entsprechende Prozess-ID anzugeben.

Ebenfalls interessant:

Es freut mich, wenn ich Dir mit diesem Artikel helfen konnte.
Wer möchte, kann diesem Blog eine kleine Aufmerksamkeit in Form einer kleinen Spende (PayPal) oder über die Amazon Wunschliste zukommen lassen.

René Albarus

Ich heiße René Albarus und bin seit 2002 beruflich im Bereich der Systemadministration tätig. Da auch ich einen Teil meines Wissens IT-Blogs im Internet verdanke, ist es für mich selbstverständlich, dass ich Lösungsansätze und Anleitungen in diesem Blog weitergebe.
René Albarus

Letzte Artikel von René Albarus (Alle anzeigen)

Schreibe einen Kommentar

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