WMI查询读取'Microsoft-Windows-AppLocker / EXE和DLL'C#

时间:2016-01-22 06:09:54

标签: c# wmi wql

我创建了一个使用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阅读它。

任何指针都将受到高度赞赏。

提前感谢所有观众。

2 个答案:

答案 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"命令简化你正在做的事情。

https://msdn.microsoft.com/en-us/powershell/reference/5.0/microsoft.powershell.diagnostics/get-winevent

Get-WinEvent -LogName" Microsoft-Windows-AppLocker / EXE和DLL"