(PowerShell Studio 2014试用版)文本框中的输出不完整

时间:2014-11-02 15:23:06

标签: powershell powershell-v2.0 powershell-v3.0 powershell-studio

我使用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"

Form

但是,如果我跑 -

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

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

1 个答案:

答案 0 :(得分: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