PS: Überwache Ordner- Script

0xffff
Goto Top
Hallo Admins,

ein Kollege arbeitet an einer Messmaschine, diese gibt aber lt. Kollegen kein Feedback wenn die automatische Berechnung abgeschlossen ist.
Einzig eine Textfile wird Zentral abgelegt.

Nun rennt der Kollege regelmäßig (sinnlos) zum Rechner und guckt, ob eine neue Textfile im shared folder liegt, wenn nein: kommt Er in 10 Minuten wieder.

Hier bat Er mich um Hilfe: es soll ein kleines Tool sein, welches eine Nachricht ausgibt, wenn eine neue Datei im Ordner XY liegt.
Das habe ich soweit auch zusammengeklickt bekommen via Powershell.

Nun ist es so, dass das zwar (weniger hübsch) funktioniert, aber sobald eine File erstellt wurde und die MSGBox aufgeht, verarbeitet das Script keine weiteren neu erstellten Files mehr bzw. schreibt es zwar in die Console, öffnet aber keine weiteren Msgboxen mehr (im Fall, dass mehrere Berechnungen abgeschlossen wurden).

Ebenso würde ich gerne um Optimierung des Codes bitten - ich bin kein hauptberuflicher Entwickler, daher Qualität von unter null. -Schlecht fühle ich mich deswegen aber nicht face-smile

Rahmenbedingungen: keine Adminrechte am Rechner, AV installiert, Win10.


Freue mich auf euer Feedback.

Besten Dank und viele Grüße
/65k

Content-Key: 3151902437

Url: https://administrator.de/contentid/3151902437

Ausgedruckt am: 01.07.2022 um 22:07 Uhr

Mitglied: em-pie
em-pie 23.06.2022 um 09:43:17 Uhr
Goto Top
Moin,

warum ersetzt du deine Zeilen 23-27 nicht durch deine Zeilen 49-56 (*)?

Gruß
em-pie


  • Nutze besser das .Net MailKit
https://adamtheautomator.com/powershell-email/
Mitglied: 0xFFFF
0xFFFF 23.06.2022 aktualisiert um 09:48:06 Uhr
Goto Top
hey em-pie,

gute Frage. Der Gedanke war: einmal ins Logfile schreiben, einmal eine Messagebox zu triggern und eben in die Console.

Nutze besser das .Net MailKit
Öhh, muss ich mich einlesen, danke Dir face-smile

VG

Edit:
Via Mail senden ist aktuell nicht das Thema. Primär geht es mir erst einmal um einen vernünftigen Code und eben, dass nach Möglichkeit, das Script weiter rennt und weitere Messageboxen malt sofern neue File im Ordner gefunden wurde.

Edit²:
Install-Package -Name 'MailKit' -Source 'nuget.org'
Ich bin mir nicht sicher, ob der Kollege etwas installieren kann ohne Adminrechte auf seiner Möhre.
Mitglied: em-pie
em-pie 23.06.2022 aktualisiert um 10:41:50 Uhr
Goto Top
gute Frage. Der Gedanke war: einmal ins Logfile schreiben, einmal eine Messagebox zu triggern und eben in die Console.
Verstehe..
stecke noch nicht so tief in der Powershell, aber im aller schlimmsten Fall ein zweites Script erstellen "msgbox.ps1", welches NUR die Messagebox darstellt. Als Parameter gibst du den anzuzeigenden Text mit.

Im Hauptscript dann das Script in einer neuen powershell.exe-Instanz öffnen.


Bzgl. E-Mail
Send-MailMessage geht auch - ich nutze das auch noch weiterhin. Die Anforderungen an den internen Mail-Server sind (noch) nicht so hoch, dass das auch damit geht.
Mitglied: chaot1coz
Lösung chaot1coz 23.06.2022 aktualisiert um 11:02:25 Uhr
Goto Top
Ersetze deine Zeile 27 mit:


Dann wird die Messagebox als Job ausgeführt und dein Hauptscript kann weiterarbeiten.
Mitglied: 0xFFFF
0xFFFF 23.06.2022 um 11:22:55 Uhr
Goto Top
Send-MailMessage geht auch
Mein Gedanke war, sollte es gewünscht werden, dass ich mich an Outlook ranhänge (ist installiert auf der Kiste) und darüber Mails versende. Das ist allerdings aktuell nicht notwendig. Ich schätze, der Kollege wird froh sein, dass man Ihm einige Kilometer Laufweg erspart face-smile

Danke dafür!

Dann wird die Messagebox als Job ausgeführt und dein Hauptscript kann weiterarbeiten.
Hey chaot1coz,
mega - danke Dir! face-smile

Weitere Vorschläge oder Ideen sind super gern gewünscht face-smile

Danke Euch!

VG