1

我有以下

Get-EventLog -LogName * -After (Get-Date).Adddays(-7)

它返回我需要的信息:

事件日志返回

现在,当我将这些信息导出时

Export-Csv c:\temp\$([Environment]::MachineName).csv

它在我的 CSV 的条目部分下返回以下内容:

System.Diagnostics.EventLogEntryCollection 

我将在多台服务器上运行它并将所有日志收集到一个区域。

所以现在我已经将信息更改为更具体一点

Get-EventLog -LogName * -After (Get-Date).Adddays(-7) |
  Select-Object MachineName, Log, Entries |
  Export-Csv -NoTypeInformation c:\temp\$([Environment]::MachineName).csv 

现在,当我导出到 CSV 时,这将返回以下内容:

新出口

但我看不到我需要的条目数量。有解决办法吗?

4

2 回答 2

1

Entries属性包含一个集合。你需要Count那个集合的。您可能还希望将MachineName值(.对于本地计算机)替换为实际的计算机名称。计算属性是实现此目的的常用方法:

Get-EventLog -LogName * -After (Get-Date).Adddays(-7) |
  Select-Object @{n='MachineName';e={$env:COMPUTERNAME}}, Log,
                @{n='Entries';e={$_.Entries.Count}} |
  Export-Csv "C:\temp\$env:COMPUTERNAME.csv" -NoType
于 2016-01-04T13:47:15.540 回答
0

使用-NoTypeInformationswitch 参数省略类型标头:

$data | Export-Csv C:\temp\$([Environment]::MachineName).csv -NoTypeInformation
于 2015-12-29T11:16:34.617 回答