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

Printed on: December 2, 2024 at 14:12 o'clock

Henere
Henere Oct 06, 2019 at 11:40:20 (UTC)
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 Oct 06, 2019 updated at 14:35:13 (UTC)
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 Oct 06, 2019 updated at 13:40:50 (UTC)
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 Oct 06, 2019 updated at 14:10:49 (UTC)
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 Oct 19, 2019 updated at 16:58:14 (UTC)
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 Oct 20, 2019 at 17:16:22 (UTC)
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