我有一个脚本,该脚本将报告Windows事件日志并通过电子邮件发送有关该事件的消息。问题有时是消息中可能有很多详细信息,这意味着电子邮件无聊可言。我想做的是以一段代码为例,例如消息的前10个字。(红色的前景在电子邮件中也无效)
更新以下代码可将所有内容拆分为新行,但似乎$ event.message返回事件日志中的第一个日志,而不是if中的错误消息声明;
stringstream
关于HTML,如果我将HTML正文放在代码的开头和结尾,那么foreach语句中的格式会去哪里?
$body += Write-Output "Server $server has an error: " $($event.Message -split '\n')[0] `n
答案 0 :(得分:0)
更改
$event.Message -split '\n'
到
($event.Message | Out-String) -replace '^((?:\s*\S+){1,10}).*', '$1'
-ForegroundColor Red
不能在任何地方使用,因为a)Write-Output
没有这样的参数,b)普通电子邮件首先不支持颜色(您需要HTML电子邮件)。
答案 1 :(得分:0)
我认为您已经在换行符中拆分了$event.Message
,所以它是多行消息。
您可以仅选择该消息的第一行,并对其代码进行较小的更改:
Write-Output "Server $server has an error:" ($event.Message -split '\n')[0]