You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Get-EventLog获取事件日志消息失败(缺失DLL)的技术求助

解决PowerShell无法显示特定事件日志消息的问题

嘿,我完全懂你遇到的麻烦——旧的Get-EventLog cmdlet在处理现代Windows事件日志时确实有点力不从心,尤其是那些来自像Microsoft-Windows-Kernel-General这类带命名空间的事件源的日志。这就是为什么你看不到预期的事件消息内容。

解决方案:改用Get-WinEvent cmdlet

Get-WinEvent是微软推荐用来替代Get-EventLog的工具,它专门针对新的Windows事件日志系统(基于ETW)设计,能正确解析这类事件的消息模板。试试下面的命令:

Get-WinEvent -ComputerName $env:COMPUTERNAME -FilterHashtable @{
    LogName = 'System'
    Id = 12
    ProviderName = 'Microsoft-Windows-Kernel-General'
} | Select-Object -Property Message

为什么这个方法有效?

  • Get-EventLog主要适配传统的事件日志格式,而Microsoft-Windows-Kernel-General属于ETW事件日志,这类事件的消息并不是直接存储在日志条目里,而是通过消息模板动态生成的。
  • Get-WinEvent能正确加载对应的消息模板,把事件中的参数填充进去,生成完整可读的消息内容。

额外小技巧

如果你需要查看事件的更多细节(比如扩展属性、时间戳等),可以用Format-List *来展示所有属性:

Get-WinEvent -ComputerName $env:COMPUTERNAME -FilterHashtable @{
    LogName = 'System'
    Id = 12
    ProviderName = 'Microsoft-Windows-Kernel-General'
} | Format-List *

内容的提问来源于stack exchange,提问作者ryanmaddock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:22:59