我正在尝试从Windows Serve Backup日志创建HTML备份报告。此报告返回包含以下属性的最新日志:
我的脚本是:
$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)
我一直在寻找几天,但我真的看不到办法。 你能帮帮我吗?
答案 0 :(得分: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的列的另一个示例,以及另一个查看events属性属性中第一个项的值的示例:
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
干杯!