我正在尝试将事件日志条目转换为html我已经取得了成功,其他cmdlet一直在争取这么长时间。 这就是我在做的事情:
Get-EventLog -logName EDEN.AppServer -AFTER $lastCheck.Date | Where-Object {$_.EntryType -eq 'Error'}
在控制台中输出看起来像我想要的
Object.toString()
但是一旦我将它分配给变量并坚持使用html,我就会得到这个。
$html = @"
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<img src = "cid:logo.jpg"/>
<div>
<P></P>
<h>Eden Application Server Information</h>
<p>Computer Name: $($EasHostInfo.Name)</p>
<p>EAS Version: $($easVersion.Version) </p>
<p>Eden Version: $($EasEdenVersion.LastVersion)</p>
<p>EAS Error Log: There was$($EasLog)</p>
</div>
</body>
</html>
"@
非常感谢任何帮助。
答案 0 :(得分:1)
您没有向我们展示关于您如何制作$EasEdenVersion
的中间步骤,但在这种情况下并不特别重要。您正试图将复杂对象压缩为单个<p>
。如果我不得不猜测你将所有name
个返回的记录放入一个段落中。
你有对象,但你需要创建结构化的html才能正确显示它。 ConvertTo-HTML
在某种程度上应该可以在这里提供帮助。虽然它可以创建整个文件并支持CSS,但您已经拥有了文件的开头,所以让我们看看我们是否可以使用它。
$html = @"
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<img src = "cid:logo.jpg"/>
<div>
<P></P>
<h>Eden Application Server Information</h>
{0}
</div>
</body>
</html>
"@
$table = Get-EventLog -logName Application -AFTER (Get-Date).AddDays(-6) |
Where-Object {$_.EntryType -eq 'Error'} |
ConvertTo-Html -Fragment | Out-String
$html -f $table
主要是为了证明我已使用占位符$html
为HTML表格编辑了{0}
的概念。该表来自Get-EventLog
的输出,它使用-Fragment
转换为HTML表并保存为一个完整的字符串。然后使用format运算符将该字符串插入$html
。
您会注意到我没有选择任何特定属性,并且并非所有属性都保存为可读字符串。您需要使用Select-Object
来获取所需的属性,例如name
,version
和lastversion
。