Bereinigungsskript mit PowerShell

Mitglied: hillifant

hillifant (Level 1) - Jetzt verbinden

09.04.2016 um 22:07 Uhr, 767 Aufrufe, 5 Kommentare

Hallo,

da ich nicht soo die Ahnung von PowerShell habe muss ich euch mal was fragen.Ich soll ein Skript schreiben das alle Dateien die älter sind als 7 Tage löscht. Dieses Skript soll dann im Task Scheduler automatisch einmal wöchentlich ausgeführt werden. Sobald das Skript aber nicht ausgeführt werden kann z.b. durch irgendwelche Fehler sollen wir automatisch eine E-Mail bekommen. Ich habe den Code zum Bereinigen schon geschrieben, der Funktioniert auch wunderbar. Auch das E-Mail senden habe ich hinbekommen aber leider schickt der uns immer eine. Ich bekomme es nicht hin, das nur eine E-Mail geschickt wird, wenn das Skript nicht ausgeführt werden konnte. Ich poste mal unten meinen Code. Vielleicht könnt Ihr mir da weiterhelfen. Ich verzeifle langsam :D


Wo muss ich jetzt was hin, damit er mir nur eine email sendet, wenn das Skript nicht funktionieren sollte.

Vielen Dank im Vorraus.
Mitglied: Dani
09.04.2016 um 23:48 Uhr
Moin,
ich denke ohne eine genaue Definition von "Sobald das Skript aber nicht ausgeführt werden" wird es keine passende Lösung geben. Ich würde sagen es gibt folgende Fehlerzustände:
  • Ordnerpfad ist nicht mehr vorhanden
  • Keine Zugriffsberechtigung auf den Ordnerpfad
  • Aufplanung kann nicht gestartet werden
  • Mailserver ist nicht erreichbar / Relay ohne SMTP-Authentifizierung ist nicht möglich
  • ...

Welche Fehlerzustände sollen abgefangen werden? Alle? Bestimmte?


Gruß,
Dani
Bitte warten ..
Mitglied: SaschaRD
11.04.2016, aktualisiert um 17:09 Uhr
Hallo,

wie @Dani bereits geschrieben hat, müssen die Anforderungen genauer definiert werden.
Hier ist ein Beispiel, wenn der Pfad nicht gefunden werden kann:

Try / Catch kann ebenfalls verwendet werden.
Hier ein Beispiel:
Bei der Exception Message kann variiert werden.
Kannst die Funktion auch weglassen oder den Mail versandt in eine eigene Funktion umschreiben die dann aufgerufen wird.

Gruß, Sascha
Bitte warten ..
Mitglied: hillifant
12.04.2016 um 13:53 Uhr
Hallo,

@SaschaRD dein Code hat super funktioniert. Es muss aber doch irgendwie die Möglichkeit geben das ich eine Mail bekomme, wenn das Script nicht ausgeführt werden konnte. Man kann ja schlecht vorher wissen, warum ein Skript abbricht bzw. nicht starten kann. Ich habe im Internet was von $LASTEXITCODE und $Error gelesen. Nur leider fehlen mir da die Kenntnisse. Ich könnte mir die zwar aneignen, nur das würde jetzt für dieses Skript zulange dauern.
Bitte warten ..
Mitglied: SaschaRD
15.04.2016, aktualisiert um 11:05 Uhr
Hallo hillifant,

Ich könnte mir die zwar aneignen, nur das würde jetzt für dieses Skript zulange dauern.
Das Wissen welches du dir aneignen wirst, wird dir nicht nur bei diesem Skript weiterhelfen, sondern bei allen weiteren die du schreibst oder erweiterst. Ich weiß es ist einfacher Copy & Paste zu machen, wenn schon die Grundkenntnisse nicht vorhanden sind meldest du dich in kürzester Zeit wieder. Also Buch / Tutorial schnappen und ran an den Speck.

Ich fasse Mal zusammen was du möchtest:
  • Das Skript soll über die Aufgabenplanung täglich/wöchentlich ausgeführt werden -> erledigt.
  • Dabei soll es alle Daten die Älter als 7 Tage sind löschen -> erledigt.
  • Läuft das Skript in einen Fehler soll es eine Mail versenden -> erledigt.
  • Kann das Skript durch die Aufgabenplanung nicht ausgeführt werden, soll eine Mail versandt werden

Das Stichtwort $LASTEXITCODE ist ein guter Ansatz. Dazu solltest du dich einlesen und wie wird $LASTEXITCODE als Parameter in die Aufgabenplanung mit übernommen.
Ich weiß ehrlich gesagt nicht ob es überhaupt möglich ist. Denn es müsste eine Verkettung stattfinden (weitere Aktion) oder vielleicht innerhalb des Skripts mit Trap, habe dies Szenario selbst noch nicht durchgeführt.

Frage mal @colinardo oder @114757

Gruß, Sascha
Bitte warten ..
Mitglied: 114757
114757 (Level 4)
15.04.2016, aktualisiert um 11:12 Uhr
Moin,
also geht es hier darum ob ein Skript überhaupt durch den Taskplaner gestartet wurde oder nicht ?? Oder den Status den man durch das Skript im Taskplaner ausgeben kann, dafür hatten wir hier schon mal was mit einem Eventtrigger für den Taskplaner:
https://www.administrator.de/forum/aufgabenplanungs-ergebnis-abfragen-24 ...

Wenn du prüfen willst ob der Taskplaner der Fehler ist und das Skript nicht ausgeführt wird, schreibe im PS-Skript ein Statusfile irgendwo hin und dann prüfst du mit einem anderen Skript ob das Trigger-File vorhanden ist oder nicht und reagierst darauf. Das lässt sich aber auch mit PRTG und durch diverse Monitoring-Tools schnellstens abfackeln.

Gruß jodel32
Bitte warten ..
Heiß diskutierte Inhalte
Off Topic
Realistische Gehaltsvorstellung für eine "IT-Allroundkraft"
gelöst JiggyLeeVor 1 TagFrageOff Topic19 Kommentare

Hallo an alle, ich hege momentan den Wunsch mich von der alten verstaubten Behörden Bürokratie und langweiliger Aufgaben los zu lösen und in einem ...

Windows 10
Windows 10 Geschwindigkeitprobleme trotz viel mehr Gb Ram
Matthes88Vor 1 TagFrageWindows 1045 Kommentare

Hallo ihr lieben aaaalso : Da mein neuer Arbeitsspeicher (32gb) von meiner alten Windows 7 version (max mit 8gb kompatibel) nicht angenommen wurde, habe ...

Humor (lol)
Tipp: Dinge, die man besser nicht klaut
altmetallerVor 1 TagTippHumor (lol)12 Kommentare

Hallo, so wurde meiner Hündin z.B. heute der (eingeschaltete) GPS-Tracker mit Mobilfunkanbindung quasi "direkt vom Halsband weggefunden". Akku hatte noch 60% :-P Und ich ...

Windows Server
GPU Passthrough HYPER-V 2019
bintesVor 1 TagFrageWindows Server8 Kommentare

Hallo, ich habe ein ein Problem mit der Bereitstellung einer Grafikkarte an eine virtuelle Maschine. Hardware: - HPE ProLiant DL380 Gen9 V4 Rack Server ...

Video & Streaming
Videoaufnahme funktioniert nur bis zum ersten Reboot (0x80040217)
IllusionFACTORYVor 1 TagFrageVideo & Streaming11 Kommentare

Ich nehme über eine Video-Software von einem USB-Hardware-Encoder Video auf. Das funktioniert exakt bis zum ersten Reboot - danach bekomme ich beim Starten der ...

Windows Server
Windows Admin Center DC
maximidVor 1 TagFrageWindows Server3 Kommentare

Hallo, ich hätte mal eine Frage zu Windows Admin Center und zwar schaue ich es mir aktuell etwas an da mir die zentrale Verwaltung ...

Grafikkarten & Monitore
Monitorhalterung mit 80cm Armlänge
ben1300Vor 23 StundenFrageGrafikkarten & Monitore7 Kommentare

Guten Abend ! ich bin auf der Suche nach einer Monitorhalterung, im besten Fall ohne Bohrung für einen 28" Monitor (Vesa Halterung). Nun kommt ...

SAN, NAS, DAS
Synology DS213j - Volume nach HDD Austausch vergrößern
gelöst JasperBeardleyVor 1 TagFrageSAN, NAS, DAS4 Kommentare

Moin, ich hab meinem NAS zwei neue 8TB spendiert, da die 3TB Platten jetzt 6 Jahre alt sind. Da die beiden Platten im JBOD ...