BizTalk 事件查看器报告

BizTalk Event Viewer Report

我的 PowerShell 脚本已准备好用于“BizTalk Server”的监视事件查看器,并且我还附上了生成的输出作为屏幕截图。

你能通过 1 个通用输出而不是每个“BizTalk Server”错误的单独错误来帮助我解决我的电子邮件警报代码丢失的地方吗?

感谢您花时间了解我的代码的一些信息,这真的帮助我为我的环境设置脚本。

$getEventLog = Get-Eventlog -log application -after ((get-date).AddHours(-0.25)) -EntryType Error | Where-Object {($_.Source -eq 'BizTalk Server')}
[INT]$i = 1
#Create mail content
$mailBody = ""
Foreach ($log in $getEventLog)
{
    $mailBody += "<th><b>Event log error message: " + $log.Index + "</b></th>"
    $mailBody += "<table style='boder:0px 0px 0px 0px;'>"

    $mailBody += "<TR style='background-color:white;'><TD>Time</TD>"
    $mailBody += "<TD>" + $log.TimeWritten + "</TD></TR>"

    $mailBody += "<TR style='background-color:rgb(245,245,245);';><TD>Source</TD>"
    $mailBody += "<TD>" + $log.Source + "</TD></TR>"

    $mailBody += "<TR style='background-color:white;'><TD>Message</TD>"
    $mailBody += "<TD>" + $log.Message + "</TD></TR>"

    $mailBody += "<TR style='background-color:rgb(245,245,245);'><TD>Machine Name</TD>"
    $mailBody += "<TD>" + $log.MachineName + "</TD></TR>"

    $mailBody += "</table>"
    $mailBody += "<BR><BR>"

    $i ++
}

$count = $i - 1;
$mailTextReport = "This report was generated because there are "+ $count  + " error messages in the Event Viewer that require your attention."

# HTML Format for Output
$HTMLmessage = @"
    <font color=""black"" face=""Arial"" size=""3"">
    <h1 style='font-family:arial;'><b>BizTalk Event Viewer Report</b></h1>
    <p style='font: .8em ""Lucida Grande"", Tahoma, Arial, Helvetica, sans-serif;'>$mailTextReport</p>
    <br><br>
    <style type=""text/css"">body{font: .8em ""Lucida Grande"", Tahoma, Arial, Helvetica, sans-serif;}
    ol{margin:0;}
    table{width:80%;}
    thead{}
    thead th{font-size:120%;text-align:left;}
    th{border-bottom:2px solid rgb(79,129,189);border-top:2px solid rgb(79,129,189);padding-bottom:10px;padding-top:10px;}
    tr{padding:10px 10px 10px 10px;border:none;}
    #middle{background-color:#900;}
    </style>
    <body BGCOLOR=""white"">
    $mailBody
    </body>
    "@

冗余错误列表在电子邮件警报中重复了 9 次

![冗余错误列表在电子邮件警报中重复了 9 次][1]

我需要如下屏幕截图所示的输出。 错误列表需要是单次的,并且对事件查看器中发现的每个错误使用新的 table

![错误列表必须是单一时间的并且对在事件查看器中发现的每个错误使用新的 table][2]

在您正在阅读的 foreach 中($log in $getEventLog)但是在 HTML 的代码中生成后,您正在分配 $getEventLog.属性 而不是 $log.属性 每个循环,所以你一直把所有的错误内容放在一起。

此致,