然后通过管道传输到 CSV 的事件日志总数

Total number of event logs then piped out to a CSV

我有以下

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

我需要的returns信息:

现在当我用

导出这些信息时
Export-Csv c:\temp$([Environment]::MachineName).csv

它 returns 我的 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 时,现在 returns 下面是:

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

使用-NoTypeInformation开关参数省略类型头:

$data | Export-Csv C:\temp$([Environment]::MachineName).csv -NoTypeInformation

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

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