(Пробная версия 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