【问题标题】:Total number of event logs then piped out to a CSV然后通过管道输出到 CSV 的事件日志总数
【发布时间】:2016-04-03 06:02:33
【问题描述】:

我有下面的

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 时,现在返回以下内容:

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

【问题讨论】:

    标签: powershell export-to-csv get-eventlog


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 它仍然在条目列上返回 System.Diagnostics.EventLogEntryCollection,这是因为它是 CSV 中的第一列吗?
      猜你喜欢
      • 1970-01-01
      • 2023-04-04
      • 2012-08-05
      • 2019-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多