2016-09-07 16 views
0

過去5日間この同じ問題で立ち往生しました。このスクリプトには問題はなく、ISEから直接実行すると問題なしで電子メールが送信されます。PowershellバッチファイルまたはCmdプロンプトまたはタスクスケジューラを使用して電子メールを送信できません

@ECHO OFF C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy RemoteSigned -file D:\powershell\Fedex_Meter_Check1.ps1 PAUSE 

もたpowershell.exeまたはCMDが、無電子メールから実行時にエラーが発生していない

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy RemoteSigned -file D:\powershell\Fedex_Meter_Check1.ps1 

を試してみました。これについて私を助けてください。

Send-MailMessage -from 'Trax_FedEx [email protected]' -to 'Rahul `[email protected]'<#'TRAX [email protected]' #> -subject 'Daily Rates `Check for FedEx Meters.' -body 'Perfect! All FedEx Meters Have Good Rates!'` `-Encoding Unicode -port 25 -smtpserver mailhost.cnf.com 
+1

なぜ 'Send-MailMessage'コマンドで非常に多くのエスケープ文字が使用されますか?ミッドコマンドのコメントをブロックしますか?すべての行が1行に移動し、プロセスでクリーンアップされていない複数の行があるように見えます。 – TheMadTechnician

+0

下記のcmdを使用してpowershell.exeからスクリプトを実行しているときに、以下も使用してpowershell.exeからメールを送信できます。 たpowershell.exe D:\のPowerShellの\ Script1.ps1 -noexit -executionpolicyバイパス $ emailFrom = "[email protected]" $ EMAILTO = "[email protected]" $ emailCC = " Trax <[email protected]> " $件名=" FedExメーターの毎日の料金チェック " $ body = "パーフェクト!すべてのFedExメーターにはお得な料金があります!" $ SMTPSERVER = "mailhost.menlolog.com" $ SMTP =新しいオブジェクトNet.Mail.SmtpClient($ SMTPSERVER) $ smtp.Send($ emailFrom、$ EMAILTO、$件名、$体) –

答えて

0

Powershellを過去にBATファイルから実行する際に、多くの問題が発生しました。私が覚えていることの1つは、開始ディレクトリを取り扱う奇妙な問題があるということです。コマンドラインから、ディレクトリをpowershellスクリプトと同じディレクトリに変更してから実行してください。私はこれがBATファイルにあります。これは、.batと.ps1が同じ名前を共有している限り動作します。

@ECHO OFF 
SET ThisScriptsDirectory=%~dpn0 
PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& '%~dpn0'" 
PAUSE 

私は別の古いスクリプトで見つかった別の解決策は、.batファイルまたはコマンドラインから実行したpowershell.exeをしてPowerShellのに代わりのファイルとしてコマンドとしての.ps1を与えることです。

powershell.exe -command "& {C:\filepath.ps1}" 
関連する問題