chrisio
Goto Top

Unzuverlässige Aufgabenausführung über die Aufgabenplanung in Windows Server 2016

Hallo Gemeinde,

anscheinend ist die Aufgabenplanung in Windows Server 2016 generell nicht mehr zuverlässig.
Aufgaben stehen in der Aufgabenplanung als erfolgreich beendet, doch bei einer Überprüfung fehlen die Resultate oftmals.
Diese Testmail beispielsweise erreichte mich Freitag, blieb Samstag aus und wurde heute morgen wieder erfolgreich zugestellt.

Bitte schließt Euch meinen Tests gerne an.
Das Szenario ist simpel, Voraussetzung ist lediglich ein funktionierender anonymous smtp relay, den man in betrieblichen Umgebungen ja eh oft benötigt.

Recherchen unter anderem hier im Board bestätigen diese These bislang und auch Kollegen haben schon zu Drittanbietertools gegriffen.
Dieses kann aber meines Erachtens nicht die Lösung sein und das Tool sagte mir bezüglich der Übersichtlichkeit ebenfalls nicht zu.

Folgendes Szenario als einfacher Test:
Wir schicken jeden morgen um 6 Uhr eine Testmail über die PowerShell.
Der Task wird im Kontext des Domänen Administrators ausgeführt.
Dieser verfügt prinzipiell in jeglicher Hinsicht über die Rechte den Task auszuführen.

task01

task02

Der Trigger steht auf jeden morgen um 06:00 Uhr.
Unter Aktionen ist folgendes definiert:

Programm oder Script:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"

Argumente hinzufügen (optional):
-ExecutionPolicy Bypass -command "C:\Scripts\testmail.ps1"

Das simple Script:
Send-MailMessage -To xxx@yyy.de -Subject "Daily Testmail" -Body "Your daily Testmail delivery ended successfully" -SmtpServer smtp-relay.xxx.com -From aaa@bbb.de  

Gruß,
Chris

Content-ID: 502071

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

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

Henere
Henere 06.10.2019 um 13:40:20 Uhr
Goto Top
Servus, kann ich nicht bestätigen. Alle meine Aufgaben laufen zuverlässig und meine Bestätigungsmails kommen auch alle an.

Grüße, Henere
NordicMike
NordicMike 06.10.2019 aktualisiert um 16:35:13 Uhr
Goto Top
Schreib doch noch ein Log ins Script mit rein, dass erkennst Du ob die Aufgabe nicht startet oder der Fehler wo anders liegt.
ChrisIO
ChrisIO 06.10.2019 aktualisiert um 15:40:50 Uhr
Goto Top
Hi,

ich habe das Script um ein Log erweitert.
Ich denke bloß, dass weiterhin in der Aufgabenplanung stehen wird, dass der Job gelaufen ist und es dann weder Mail noch Log geben wird.

$Datum = get-date -Format "dd.MM.yyyy"              
Start-Transcript -Path C:\Scripts\transcript_$Datum.txt 
Send-MailMessage -To xxx@yyy.de -Subject "Daily Testmail" -Body "Your daily Testmail delivery ended successfully" -SmtpServer smtp-relay.xxx.com -From aaa@bbb.de  
Stop-Transcript

Gruß,
Chris
Dani
Dani 06.10.2019 aktualisiert um 16:10:49 Uhr
Goto Top
Moin,
das ist doch kein Debugging...

Versuch es einmal so:
try {
Send-MailMessage -To xxx@yyy.de -Subject "Daily Testmail" -Body "Your daily Testmail delivery ended successfully" -SmtpServer smtp-relay.xxx.com -From aaa@bbb.de  
}
catch {
write-Console $_.Exception.Message | Out-file -Encoding Ascii -append c:\Temp\textfile.txt
}
finalley {
write-Console "Skript beendet" | Out-file -Encoding Ascii -append c:\Temp\textfile.txt  
}
Wie immer ungetestet!


Gruß,
Dani
ChrisIO
ChrisIO 19.10.2019 aktualisiert um 18:58:14 Uhr
Goto Top
Hey,

sry ich komme erst jetzt wieder dazu.

Ich habe dein Script mal angepasst, so dass die PowerShell es verstehen konnte.
Es entsteht eine Datei in der einfach Skript beendet steht.

Ich hoffe der Code funktioniert so noch wie von Dir beabsichtigt.

Gruß Chris
und Danke für die Unterstützung.

$Datum = get-date -Format "dd.MM.yyyy"   
try {
Send-MailMessage -To ...}
catch {
write $_.Exception.Message | Out-file -Encoding Ascii -append C:\Scripts\Maildeliverylog_$Datum.txt 
}
finally {
write "Skript beendet" | Out-file -Encoding Ascii -append C:\Scripts\Maildeliverylog_$Datum.txt   
}
Dani
Dani 20.10.2019 um 19:16:22 Uhr
Goto Top
Moin,
Es entsteht eine Datei in der einfach Skript beendet steht.
das würde bedeuten, dass das Senden der E-Mail problemlos funktioniert hat. Anderenfalls sollte catch greifen. Du kannst als Referenz einmal ein falsches Passwort oder Benutzername angeben. Damit sollte in der Datei ein Fehler geschrieben werden.


Gruß,
Dani