Powershell: Tidak dapat mengonversi 'System.Object[]' ke tipe 'System.String'

Ketika saya menjalankan kode berikut saya menerima pesan "tidak dapat mengonversi 'System.Object[]' ke tipe 'System.String'". Bagaimana cara mengembalikan daftar log peristiwa ke get-eventlog?

$EventLogList = Get-EventLog | Select-Object -ExpandProperty log
Get-evenlog -log $eventloglist

Get-EventLog : Tidak dapat mengonversi 'System.Object[]' ke tipe 'System.String' yang diperlukan oleh parameter 'LogName'.

bantuan Anda dihargai


person resolver101    schedule 12.04.2012    source sumber
comment
Anda salah ketik pada baris kedua. Seharusnya eventlog bukannya evenlog.   -  person Dmytro Shevchenko    schedule 12.04.2012
comment
Dan tidak jelas apa niat Anda. Apa sebenarnya yang ingin Anda capai?   -  person Dmytro Shevchenko    schedule 12.04.2012
comment
Ah benar maaf. Saya ingin mengambil semua entri acara dari semua log tradisional. misalnya Aplikasi, HardwareEvents, Internet Explorer, Layanan Manajemen Kunci, Keamanan, Sistem dll   -  person resolver101    schedule 12.04.2012


Jawaban (1)


LogName adalah parameter wajib untuk Get-EventLog dan Anda harus menyediakannya, kecuali Anda mencoba membuat daftar dengan -list. Selain itu, ia mengharapkan string dan baris kedua memberikan kesalahan karena Anda meneruskan array.

Selain itu, juga tidak jelas apa yang Anda coba lakukan dengan pernyataan tersebut.

Saya kira Anda menginginkan sesuatu seperti:

get-eventlog -list | %{ get-eventlog -log $_.log }
person manojlds    schedule 12.04.2012
comment
Terima kasih. Array menyebabkan masalah bagi saya. Saya membuat foreach untuk mengulang setiap log satu per satu. - person resolver101; 12.04.2012