SMTP를 통해 전자 메일을 보내는 PowerShell 스크립트가 있습니다. 스크립트는 Powershell ISE에서 제대로 실행되지만 작업 스케줄러에서는 실패합니다. 나는 Windows Server 2012를 사용하고 있습니다.이 서버에서 똑같은 설정을 사용하여 실행하는 다른 Powershell 스크립트가 있지만이 스크립트는 전자 메일을 보내지 않습니다. 작업 스케줄러에 표시되는 반환 코드 (0xFFFD0000)이며 이에 대한 정보를 찾을 수 없습니다. 가장 높은 권한으로 실행되도록 작업을 설정했으며 실행 정책이 RemoteSigned인지 확인했습니다. 아무도 전에 이걸 봤어?Powershell 스크립트는 Powershell에서 작동하지만 작업 스케줄러에서는 실패합니다.
$EmailFrom = "[email protected]"
$EmailTo = "[email protected]"
$Subject = "Email Subject"
$Body = @"
Person,
Some message here
Thanks,
User
"@
$SMTPServer = "smtp.domain.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("[email protected]", "password");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
업데이트 : 여기
powershell -f "c:\scripts\EmailTest.ps1"
스크립트입니다 : 여기
은 작업의 명령입니다 나는이 문제를 해결할 수 있었다. 분명히 나는 스크립트에 주석 처리 된 줄이 추가되었다. 왜 이것이 오류를 일으키는 지 잘 모르겠지만 일단 주석 처리 된 행을 제거하면 작업 스케줄러에서 제대로 실행됩니다. 코멘트는 다음과 같이 보면서 바로 위의 스크립트의 다른 $ EmailTo 선언 이하였다
#$EmailTo = "[email protected]"
예약 작업 내역을 확인하여 일부 정보를 볼 수 있습니다. 또는 스크립트 내에서 일부 출력 로그를 저장하거나 log.txt 파일에 캐치 정보를 시도하십시오. 전 비슷한 상황이지만 C#에서는 문제가 자격 증명과 관련되어 있습니다. – Shawn