Erro do Agendador de Tarefas do Windows 2147746322 Enviando e-mail com anexo

0

Ao enviar um anexo * .txt usando a ação Enviar email do Agendador de Tarefas do Windows, a tarefa falha com o ID de erro 2147746322.

Ao enviar usando o comando Send-MailMessage do PowerShell com exatamente os mesmos parâmetros, o mail & anexos são enviados com sucesso.

Os sintomas parecem os mesmos mencionados aqui: link

    
por JohnLBevan 12.02.2015 / 15:06

1 resposta

0

Depois de muita investigação, descobrimos que havia alguns feeds de linha no arquivo de texto que estavam sendo anexados e que não foram processados por retornos de carro (ou seja, \ n em vez de \ r \ n).

A remoção desses feeds de linha autônomos resolveu o problema.

Caso seja útil para outras pessoas, aqui está o script para remover caracteres inválidos em um arquivo:

Arquivo: 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"
}

Exemplo de uso:

(se chamado do arquivo de lote do windows)

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

O script funciona porque Get-Content , quando usado sem o parâmetro -Raw (que está disponível somente a partir do PS3) lê o arquivo uma linha por vez, tratando tanto \r\n quanto \n como fim da linha personagens; mas ao escrever de volta em Set-Content usando apenas a convenção de fim do Windows \r\n line; assim todas as quebras são substituídas.

    
por 12.02.2015 / 15:08