2014-03-29 56 views
0

我試圖從Windows Serve備份日誌中創建HTML備份報告。此報告返回最新日誌與性能:在PowerShell中添加html列

  1. TimeCreated
  2. ID
  3. 級別顯示
  4. 消息

我的腳本是:

$lastsevendays = (get-date) - (new-timespan -day 7) 
$MyObject = Get-WinEvent -FilterHashTable @{LogName='Microsoft-Windows-Backup'; StartTime=$lastsevendays} 

$Header = @" 
<style> 
TABLE {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;} 
TH {border-width: 1px;padding: 3px;border-style: solid;border-color: black;background-color: #6495ED;} 
TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;} 
</style> 
"@ 

$MyObject | Select 'TimeCreated', 'LevelDisplayName','ID', 'Message' | ConvertTo-HTML -Head $Header | Out-file C:\script.htm 

現在我想在「消息」列的右側添加一列。通常,此列將返回備份的大小。我可以使用以下命令備份大小:

(($objFSO.GetFolder("C:\Users\Backup").Size)/1MB) 

我一直在尋找天,但我不能真正看到一種方式。 你能幫我嗎?

回答

1

計算出來的屬性會有幫助。一般格式如下:

@{ Name = "PropertyNameHere"; Expression = { <# Code to define property value here, using $_ as the current object #> }} 

您的方案中的示例。我假設你提前定義$ objFSO。請注意,您可能有更好的方式來拉大小。

#Everything on one line! 
    $MyObject | 
     Select 'TimeCreated', 'LevelDisplayName','ID', 'Message', @{ Name = "BackupSize"; Expression = { (($objFSO.GetFolder("C:\Users\Backup").Size)/1MB) }} | 
     ConvertTo-HTML -Head $Header | 
     Out-file C:\script.htm 

#### #### #### #### #### 

#Alternative: Define calculated property hash(es) ahead of time 
    $BackupSize = @{ Name = "BackupSize"; Expression = { (($objFSO.GetFolder("C:\Users\Backup").Size)/1MB) } } 

    $MyObject | 
     Select 'TimeCreated', 'LevelDisplayName','ID', 'Message', $BackupSize | 
     ConvertTo-HTML -Head $Header | 
     Out-file C:\script.htm 

又如並稱總是具有值42的列,而另一個着眼於第一個項目中的事件的性能屬性的值:

Get-WinEvent -LogName System -MaxEvents 5 | 
    Select TimeCreated, Id, @{ Name = "StaticProperty"; Expression = {42}}, @{ Name = "Property1"; Expression = {$_.Properties[0].value}} 

幾個示例資源:

如果你發現自己使用這些的時候,你使用PowerShell的ISE 3或更高版本,新增片段!這是迄今爲止最常用的片段在我的收藏

New-IseSnippet -Title "Calculated Property" -description "Create a calculated property" -text '@{ label = ""; expression = {} }' -Author Blah -CaretOffset 12 -ErrorAction SilentlyContinue -force 

乾杯!

+0

謝謝!它效果很好 – user3474661