Powershell: ไม่สามารถแปลง 'System.Object[]' เป็นประเภท 'System.String'

เมื่อฉันรันโค้ดต่อไปนี้ ฉันได้รับข้อความ "ไม่สามารถแปลง 'System.Object[]' เป็นประเภท 'System.String'" ฉันจะส่งรายการบันทึกเหตุการณ์กลับไปที่ get-eventlog ได้อย่างไร

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

รับ-EventLog: ไม่สามารถแปลง 'System.Object[]' เป็นประเภท 'System.String' ที่ต้องการโดยพารามิเตอร์ 'LogName'

ความช่วยเหลือของคุณได้รับการชื่นชม


person resolver101    schedule 12.04.2012    source แหล่งที่มา
comment
คุณพิมพ์ผิดในบรรทัดที่สอง ควรเป็น eventlog แทนที่จะเป็น evenlog   -  person Dmytro Shevchenko    schedule 12.04.2012
comment
และยังไม่ชัดเจนว่าคุณมีเจตนาอะไร คุณกำลังพยายามบรรลุอะไรกันแน่?   -  person Dmytro Shevchenko    schedule 12.04.2012
comment
อ๋อ ขอโทษที ฉันต้องการดึงข้อมูลรายการเหตุการณ์ทั้งหมดจากบันทึกแบบเดิมทั้งหมด เช่น. แอพพลิเคชัน, HardwareEvents, Internet Explorer, บริการจัดการคีย์, ความปลอดภัย, ระบบ ฯลฯ   -  person resolver101    schedule 12.04.2012


คำตอบ (1)


LogName เป็นพารามิเตอร์บังคับสำหรับ Get-EventLog และคุณต้องระบุ เว้นแต่ว่าคุณกำลังพยายามสร้างรายการด้วย -list นอกจากนี้ยังคาดว่าจะมีสตริงและบรรทัดที่สองให้ข้อผิดพลาดเนื่องจากคุณกำลังส่งผ่านอาร์เรย์

นอกจากนั้น ยังไม่ชัดเจนว่าคุณกำลังพยายามทำอะไรกับข้อความดังกล่าว

ฉันคิดว่าคุณต้องการบางอย่างเช่น:

get-eventlog -list | %{ get-eventlog -log $_.log }
person manojlds    schedule 12.04.2012
comment
ขอบคุณ อาร์เรย์ทำให้ฉันเกิดปัญหา ฉันสร้าง foreach เพื่อวนซ้ำแต่ละบันทึกทีละรายการ - person resolver101; 12.04.2012