Windows Task Scheduler-Fehler 2147746322 Senden von E-Mails mit Anhang

0

Wenn Sie einen * .txt-Anhang mit der Aktion "Mail senden" des Windows-Taskplaners senden, schlägt der Auftrag mit der Fehler-ID 2147746322 fehl.

Beim Senden mit dem PowerShell-Befehl Send-MailMessage mit genau den gleichen Parametern werden die E-Mails und Anhänge erfolgreich gesendet.

Die Symptome scheinen mit den hier genannten identisch zu sein: http://www.networksteve.com/forum/topic.php/Task_Scheduler_-_Can%27t_Send_Email/?TopicId=18073&Posts=0

JohnLBevan
quelle

Antworten:

0

Nach eingehender Untersuchung haben wir festgestellt, dass die angehängte Textdatei einige Zeilenumbrüche enthält, die nicht von Wagenrückläufen verarbeitet wurden (dh \ n statt \ r \ n).

Durch das Entfernen dieser eigenständigen Zeilenvorschübe wurde das Problem behoben.

Falls es für andere von Nutzen sein sollte, finden Sie hier das Skript zum Entfernen ungültiger Zeichen in einer Datei:

Datei: RemoveInvalidLineBreaks.ps1

if ($args.length -gt 0 -AND 
    $args[0] -ne $NULL -AND 
    $args[0] -ne "") 
{ 
    $fn = $args[0]
    (Get-Content $fn) | Set-Content $fn
} 
else 
{
    write-error "No filename supplied"
}

Beispiel Verwendung:

(wenn von Windows Batch-Datei aufgerufen)

powershell -ExecutionPolicy RemoteSigned ./RemoveInvalidLineBreaks.ps1 D:\TEST\myLogFile.txt

Das Skript funktioniert , weil Get-Content, wenn sie ohne die verwendeten -RawParameter (die von PS3 ab nur verfügbar ist) liest die Datei eine Zeile zu einer Zeit, sowohl die Behandlung \r\nund \nals Zeilenende Zeichen; aber wenn Sie Set-Contentnur mit der Windows- \r\nZeilenende-Konvention zurückschreiben ; Somit werden alle Pausen ersetzt.

JohnLBevan
quelle