2016-04-01 54 views
0

我想獲取事件日誌條目到html我已經與其他cmdlet的成功與此戰鬥太久。 這裏是我在做什麼:試圖從事件日誌中獲取數據到電子郵件中的HTML

Get-EventLog -logName EDEN.AppServer -AFTER $lastCheck.Date | Where-Object {$_.EntryType -eq 'Error'} 
輸出看起來控制檯

像我想要 consoleOut

,但一旦我把它分配給變量,並堅持在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> 
"@ 

In HTML

任何幫助將是非常讚賞。

+1

你能告訴我們你如何「粘」在HTML? :) –

+0

我試過使用不同的屬性,如$ EasLog.Entries,$ easLog.Log.ToString()不知道我在做什麼錯誤 – BFS

+0

我想出了一種方法來做到這一點︰$ EasLog = Get-EventLog -logName EDEN.AppServer -AFTER $ lastCheck.Date | Where-Object {$ _。EntryType -eq'Error'} |的ConvertTo HTML的 – BFS

回答

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表並保存爲一個整個字符串。然後使用格式運算符將該字符串插入到$html中。

Sample Output

你會發現,我沒有選擇任何特定屬性,且並非所有的屬性都保存爲可讀的字符串。你將需要使用Select-Object來獲得你想要的屬性,如name,versionlastversion

相關問題