我创建了一个使用WMI读取Windows事件的代理。我使用过去3年的代理来收集活动。它用于SEIM产品。查询看起来像
SELECT * FROM Win32_NTLogEvent where LogFile = 'System' or logFile='Active Directory Web Services'
我能够正确地获得活动。但现在我想阅读apploacker事件'Microsoft-Windows-AppLocker / EXE和DLL'(应用程序和安全日志 - > Microsoft - > Windows - > AppLocker - > Exe和DLL)。
我尝试了以下查询,但它返回零记录,但我有40多条记录。我可以在事件查看器中看到记录。
SELECT * FROM Win32_NTLogEvent where LogFile = 'Microsoft-Windows-AppLocker/EXE and DLL'
我尝试过“wbemtest”但没有记录没有错误。
我不确定这是否可以通过任何其他方式使用WMI实现。我知道Powershell有一个cmdlet,通过它我可以读取'Microsoft-Windows-AppLocker / EXE和DLL'事件。但我想用WMI阅读它。
任何指针都将受到高度赞赏。
提前感谢所有观众。
答案 0 :(得分:6)
似乎WMI查询解析了注册表位置HKLM\SYSTEM\CurrentControlSet\Services\EventLog
以获取可用的事件日志(请参阅MSDN Forum post)。
使用查询结果Select * FROM Win32_NTEventLogFile
检查您在那里找到的列表。
要为WMI操作添加日志文件,请在上面的注册表位置添加一个新密钥,其中包含日志名称(在您的情况下为“Microsoft-Windows-AppLocker / EXE和DLL”)。现在它应该使用您的WMI查询返回该日志。
答案 1 :(得分:1)
根据PowerShell版本,您可以使用" Get-WinEvent"命令简化你正在做的事情。
Get-WinEvent -LogName" Microsoft-Windows-AppLocker / EXE和DLL"