1

我使用带有两个控件的 PowerShell Studio 2014 Trial 创建了一个表单,即一个命令按钮和一个文本按钮。下面是button1上点击事件的代码-

$button1_Click={

$results=Get-WinEvent -FilterHashtable @{ LogName = "application"; StartTime = "10/30/2014 12:00:01 AM"; EndTime = "10/30/2014 11:59:59 PM" }

$textbox1.Text=$results
}

当我执行此操作时,它不会提供包含日志的预期输出。

它显示——"System.Diagnostics.Eventing.Reader.EventLogRecord"

形式

但是,如果我运行-

Get-WinEvent -FilterHashtable @{ LogName = "application"; StartTime = "10/30/2014 12:00:01 AM"; EndTime = "10/30/2014 11:59:59 PM" }

在 PowerShell ISE 上,它显示所有日志。

4

1 回答 1

2

就像我在评论中说的那样,你得到了你要求的输出。PowerShell 控制台使用内置 cmdlet(如Out-Default. 您说您想要所有这些信息,但我猜您想要默认显示的内容。因此我会做出以下结果

$results = Get-WinEvent -FilterHashtable @{ LogName = "application"; StartTime = "10/30/2014 12:00:01 AM"; EndTime = "10/30/2014 11:59:59 PM" } | Select provider,timecreated,id,leveldisplayname,message | Format-Table | Out-String -Width 1024

用来Select只得到我们想要的。根据需要更改此设置。使用 Format-Table 进行固定宽度输出,然后通过管道将其输入Out-String

于 2014-11-02T16:00:39.630 回答