2016-10-17 19 views
0

私は以下のようなpowershellスクリプトを持っています。ここでは、5分前に.errファイルが作成されているかどうかをチェックし、そうであれば、エラーファイルごとに.errファイルの最初の5行を電子メールで送信しています。スクリプトを実行しようとすると、最初のファイルですが、以下のスナップショットに示すように2番目のファイルにエラーが発生します。私はPowerShellを初めて使用しています。私はこのエラーに対する解決策を見つけるのに苦労しています。スクリプトの実行中パワーシェルスクリプトでOutlookから電子メールを送信中にエラーが発生しました

$ChkFile = "D:\ErrorLog\*.err" 
$ChkFilePath = "D:\ErrorLog" 
$o = New-Object -comObject Outlook.Application 
$mail = $o.CreateItem(0) 
$mail.importance = 2 
$mail.subject = “Error Log“ 
$mail.To = “[email protected]“ 
$FileExists = Test-Path $ChkFile 
$FileCount = Get-ChildItem $ChkFilePath *.err | Measure-Object | %{$_.Count} 
If ($FileExists -eq $True) { 

    If ($FileCount -gt 0) 
    { 
     Foreach($file in (Get-ChildItem $ChkFile)) 
     { 

      Write-Host $file 
      $createtime = $file.LastWriteTime 
      $nowtime = get-date 
      if (($nowtime - $createtime).totalminutes -gt 5) 
      { 
       $GetFileContent = Get-Content $file -totalcount 5 
       $mail.body = $GetFileContent 
       Write-Host $GetFileContent 
       $mail.Send() 

      } 


     } 


    } 
} 

エラーが発生: enter image description here

+0

'Send-MailMessage'コマンドレットを確認できました –

答えて

1

あなたはおそらくあなたのメールオブジェクトを再作成する必要があります$mail.Send()メソッドを呼び出した後。これを行うには、オブジェクトの作成をループ内に配置します。

$ChkFile = "D:\ErrorLog\*.err" 
$ChkFilePath = "D:\ErrorLog" 
$o = New-Object -comObject Outlook.Application 
$FileExists = Test-Path $ChkFile 
$FileCount = Get-ChildItem $ChkFilePath *.err | Measure-Object | %{$_.Count} 
If ($FileExists -eq $True) { 

    If ($FileCount -gt 0) { 
    Foreach($file in (Get-ChildItem $ChkFile)) { 
     Write-Host $file 
     $createtime = $file.LastWriteTime 
     $nowtime = get-date 
     if (($nowtime - $createtime).totalminutes -gt 5) { 
      $mail = $o.CreateItem(0) 
      $mail.importance = 2 
      $mail.subject = "Error Log" 
      $mail.To = "[email protected]" 
      $mail.importance = 2 
      $mail.subject = "Error Log" 
      $mail.To = "[email protected]" 
      $GetFileContent = Get-Content $file -totalcount 5 
      $mail.body = $GetFileContent 
      Write-Host $GetFileContent 
      $mail.Send() 

     } 
    } 
    } 
} 
+0

ありがとうございます!!出来た... – Priyanka

関連する問題