2017-12-19 15 views
0

申し訳ありません申し訳ありませんPowerShellスクリプトの作成を始めました。私は、イベント(エラー)がイベントビューアに来ると、スクリプトを使用して電子メールを送信しようとしています。すべてのオペレーティングシステムで動作しないため、イベントビューアに組み込まれている機能を使用したくありません。ここに私のスクリプトでは何があるのですが、切り取ったエラーからメッセージやデータをインポートすることはできません。Powershell Get-EventLog(イントロ)

$event = Get-EventLog -LogName Application -Source "My Script-1" | where {$_.eventID -eq 1} 

if ($event.EntryType -eq "Error") 
{ 
    [string]$EmailBody = Event.Data 
    $EmailFrom = "[email protected]" 
    $EmailTo = "[email protected]" 
    $EmailSubject = "This was sent from a PowerShell Script" 
    $SMTPServer = "Example Server SMTP" 
    Write-host "Sending Email Test" 
    Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -Body $EmailBody -SmtpServer $SMTPServer 
} 
else 
{ 
    write-host "No error found" 
    write-host "Here is the log entry that was inspected:" 
    $event 
} 

私は$ EmailBodyに自分の文字列を入れた場合、それは無問題で動作しますが、私は、私は運を持っていないイベントからのデータをつかむしようとします。

これはテストイベントを作成するために使用するスクリプトです。

#New-EventLog -LogName Application -Source "My Script-1" 
Write-EventLog -LogName Application -Source "My Script-1" -EntryType Error - 
EventId 1 -Message "This is a test Entry." 

私は、そのイベントが切断されると最初のスクリプトが実行されるというタスクを作成しました。

私はインターネット上で検索し、私は運がなかった。助けてください。

+0

「運がない」とはどういう意味ですか? (何かがうまくいかないと言うと、それはうまくいきませんでした。誰もあなたの画面を見ることはできません)。 –

答えて

0

これはprobalyなのでEvent.Dataは何も返しません。

これは、$event.Dataである必要がありますが、おそらく$event.Messageを使用してエラーの情報メッセージを取得する必要があります。

だから、すべて一緒に次のようになります。

$event = Get-EventLog -LogName Application -Source "My Script-1" | where {$_.eventID -eq 1} 

if ($event.EntryType -eq "Error") 
{ 
    [string]$EmailBody = $event.Data 
    #or [string]$EmailBody = $event.Message 

    $EmailFrom = "[email protected]" 
    $EmailTo = "[email protected]" 
    $EmailSubject = "This was sent from a PowerShell Script" 
    $SMTPServer = "Example Server SMTP" 
    Write-host "Sending Email Test" 
    Send-MailMessage -From $EmailFrom -To $EmailTo -Subject $EmailSubject -Body $EmailBody -SmtpServer $SMTPServer 
} 
else 
{ 
    write-host "No error found" 
    write-host "Here is the log entry that was inspected:" 
    $event 
} 
0

メッセージを使用する[string]$EmailBody = $Event.Data

とその常に良いと[string]$EmailBody = Event.Data

を交換してくださいではなく、データを使用すると、エラーメッセージの詳細気にしている原因キャプチャされる予定のデータではありません。

希望します。

関連する問題