(Пробная версия PowerShell Studio 2014) Неполный вывод в текстовом поле

Я создал форму, используя пробную версию PowerShell Studio 2014 с двумя элементами управления, а именно с командной кнопкой и текстовой кнопкой. Ниже приведен код для события нажатия на 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 он показывает все журналы.

1 ответ

Решение

Как я уже сказал в своем комментарии, вы получаете результат, который вы запрашивали. Консоль PowerShell обрабатывает вывод объектов с помощью встроенных командлетов, таких как 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

Другие вопросы по тегам