{"id":2023,"date":"2019-05-29T18:22:19","date_gmt":"2019-05-29T16:22:19","guid":{"rendered":"https:\/\/www.langlitz-it.de\/?p=2023"},"modified":"2019-07-24T16:21:43","modified_gmt":"2019-07-24T14:21:43","slug":"powershell-event-steuerung","status":"publish","type":"post","link":"https:\/\/www.langlitz-it.de\/?p=2023","title":{"rendered":"PowerShell &#8211; Event Steuerung"},"content":{"rendered":"<p>Es gibt Objekte, die als <em>MemberType<\/em> nicht nur Methoden oder Eigenschaften mitbringen, sondern auch Events. Was bedeutet das?<\/p>\n<p>Sehen wir uns das am Beispiel eines Prozessobjektes an:<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-2024 size-full\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung1.jpg\" alt=\"\" width=\"1070\" height=\"152\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung1.jpg 1070w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung1-300x43.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung1-768x109.jpg 768w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung1-1024x145.jpg 1024w\" sizes=\"(max-width: 1070px) 100vw, 1070px\" \/><\/a><\/p>\n<p>Hier gibt es ein Member mit dem Typ Event und dem Namen <em>Exited<\/em>. Was kann man damit nun anfangen? Starten Sie ein Word auf Ihrem PC. Im Anschluss laden Sie den Winword Prozess in eine Variable:<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2025\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung2-1024x224.jpg\" alt=\"\" width=\"1024\" height=\"224\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung2-1024x224.jpg 1024w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung2-300x66.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung2-768x168.jpg 768w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung2.jpg 1145w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Nun k\u00f6nnen Sie eine \u00dcberwachung einrichten, indem Sie einen Job definieren, der beim Auftreten eines Events eine Aktion ausl\u00f6st. Wenn zum Beispiel Word geschlossen wird, k\u00f6nnten Sie dadurch das Starten von Excel ausl\u00f6sen.<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2026\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung3.jpg\" alt=\"\" width=\"925\" height=\"77\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung3.jpg 925w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung3-300x25.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung3-768x64.jpg 768w\" sizes=\"(max-width: 925px) 100vw, 925px\" \/><\/a><\/p>\n<p>Wenn Sie nun Word beenden, wird automatisch Excel gestartet. \u00dcber die Sinnhaftigkeit l\u00e4sst sich bei diesem Beispiel sicher streiten.<\/p>\n<p>Sie k\u00f6nnten auch eine Art Scheduler einrichten, der permanent eine Abfrage durchf\u00fchrt, ob ein Prozess (in diesem Falle Winword) gestartet ist. Eine solche Steuerung macht aber sicher mehr Sinn, wenn sie entsprechend Event getriggert ist. Ansonsten m\u00fcsste der Scheduler st\u00e4ndig laufen und w\u00fcrde Rechnerleistung ben\u00f6tigen.<\/p>\n<p>Diese Form bietet nat\u00fcrlich noch viele weitere Einsatzm\u00f6glichkeiten. Bauen wir uns doch mit dieser Methode mal einen Countdown, der nach Ablauf &#8220;etwas&#8221; ausl\u00f6st.<\/p>\n<p>Zun\u00e4chst erstellen wir ein neues Timer Objekt:<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung4-1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2031\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung4-1.jpg\" alt=\"\" width=\"875\" height=\"141\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung4-1.jpg 875w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung4-1-300x48.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung4-1-768x124.jpg 768w\" sizes=\"(max-width: 875px) 100vw, 875px\" \/><\/a><\/p>\n<p>Wie Sie sehen, gibt es auch hier wieder die Member vom Typ Event. Wir verwenden das Event <em>Elapsed<\/em>. Dieses Event tritt auf, wenn die Zeit abgelaufen ist.<\/p>\n<p>Nun richten wir wieder einen Job zur \u00dcberwachung des Events ein. Den Countdown setzen wir auf 5 Sekunden und starten ihn mit <em>$Countdown.Enabled=$True&nbsp;<\/em><\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung6.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2033\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung6.jpg\" alt=\"\" width=\"853\" height=\"174\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung6.jpg 853w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung6-300x61.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung6-768x157.jpg 768w\" sizes=\"(max-width: 853px) 100vw, 853px\" \/><\/a><\/p>\n<p>Alle 5 Sekunden wird nun &#8220;Countdown abgelaufen!&#8221; angezeigt. Ausschalten k\u00f6nnen Sie diese Anzeige wieder mit <em>$Countdown.Enabled=$False<\/em><\/p>\n<hr>\n<p>Bei aller Spielerei nun noch ein brauchbares Beispiel zur \u00dcberwachung eines Verzeichnisses.<\/p>\n<p>Sie m\u00f6chten das Verzeichnis <em>c:\\work<\/em> auf Ver\u00e4nderungen \u00fcberwachen. Wenn Dateien darin abgelegt werden oder Unterverzeichnisse darin erstellt werden, h\u00e4tten Sie gerne eine Benachrichtigung per Mail. Eine solche \u00dcberwachung l\u00e4sst sich genau mit dieser Event Funktion realisieren. Zun\u00e4chst erstellen wir wieder ein entsprechendes Objekt:<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung7.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2042\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung7.jpg\" alt=\"\" width=\"770\" height=\"63\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung7.jpg 770w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung7-300x25.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung7-768x63.jpg 768w\" sizes=\"(max-width: 770px) 100vw, 770px\" \/><\/a><\/p>\n<p>Die in dem Objekt enthaltenen Events sehen Sie hier:<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung8.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2043\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung8-1024x178.jpg\" alt=\"\" width=\"1024\" height=\"178\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung8-1024x178.jpg 1024w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung8-300x52.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung8-768x133.jpg 768w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung8.jpg 1038w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Wir brauchen nun noch die Variable mit dem Scriptcode zum Versenden einer Mail:<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung9.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-2044\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung9-1024x19.jpg\" alt=\"\" width=\"1024\" height=\"19\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung9-1024x19.jpg 1024w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung9-300x6.jpg 300w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung9-768x14.jpg 768w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung9.jpg 1252w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>Den <em>$Mailuser<\/em> habe ich nat\u00fcrlich vorher mit <em>$Mailuser = Get-Credentials<\/em> eingelesen.<\/p>\n<p>Zum Abschluss dann noch die Events als Jobs registrieren und das war&#8217;s:<\/p>\n<p><a href=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung10.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2045\" src=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung10.jpg\" alt=\"\" width=\"535\" height=\"75\" srcset=\"https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung10.jpg 535w, https:\/\/www.langlitz-it.de\/wp-content\/uploads\/2017\/08\/event_steuerung10-300x42.jpg 300w\" sizes=\"(max-width: 535px) 100vw, 535px\" \/><\/a><\/p>\n<p>Wenn Sie nun eine Datei ablegen, neu erstellen oder was auch immer in diesem Verzeichnis bearbeiten, erhalten Sie (nat\u00fcrlich nur, wenn das SMTP technisch alles passt) eine Benachrichtigung per Mail.<\/p>\n<p>Wenn Sie diese \u00dcberwachung wieder abschalten m\u00f6chten, lassen Sie sich \u00fcber <em>Get-Job<\/em> die entsprechenden Jobs geben und l\u00f6schen Sie diese mit <em>Remove-Job -force<\/em><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es gibt Objekte, die als MemberType nicht nur Methoden oder Eigenschaften mitbringen, sondern auch Events. Was bedeutet das? Sehen wir uns das am Beispiel eines Prozessobjektes an: Hier gibt es ein Member mit dem Typ Event und dem Namen Exited. &hellip; <a href=\"https:\/\/www.langlitz-it.de\/?p=2023\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[728,726,729,725,553,727],"_links":{"self":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts\/2023"}],"collection":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2023"}],"version-history":[{"count":18,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts\/2023\/revisions"}],"predecessor-version":[{"id":2450,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=\/wp\/v2\/posts\/2023\/revisions\/2450"}],"wp:attachment":[{"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2023"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2023"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.langlitz-it.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2023"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}