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

WMI query to Read 'Microsoft-Windows-AppLocker/EXE and DLL' C#

我创建了一个代理来使用 WMI 读取 windows 事件。我可能会使用过去 3 年的代理来收集事件。它用于 SEIM 产品。查询看起来像

SELECT * FROM Win32_NTLogEvent where LogFile = 'System' or logFile='Active Directory Web Services'

我能够正确获取事件。但现在我想阅读 apploacker 事件 'Microsoft-Windows-AppLocker/EXE and DLL'(应用程序和安全日志 -> Microsoft -> Windows -> AppLocker -> Exe 和 DLL)。

我尝试了以下查询,但它 returns 零记录,尽管其中有 40 多条记录。我可以在事件查看器中看到记录。

SELECT * FROM Win32_NTLogEvent where LogFile = 'Microsoft-Windows-AppLocker/EXE and DLL'

我试过 "wbemtest" 但没有记录也没有错误。

我不确定这是否可以通过使用 WMI 的任何其他方式实现。我知道 Powershell 有一个 cmdlet,通过它我可以读取 'Microsoft-Windows-AppLocker/EXE and DLL' 事件。但我想使用 WMI 阅读它。

任何指点将不胜感激。

提前感谢所有观众。

似乎 WMI 查询解析注册表位置 HKLM\SYSTEM\CurrentControlSet\Services\EventLog 以获得可用的事件日志(请参阅 MSDN Forum post)。 使用查询 Select * FROM Win32_NTEventLogFile.

的结果检查您在那里找到的列表

要为 WMI 操作添加日志文件,请在上述注册表位置下使用日志名称添加一个新项(在您的情况下为 'Microsoft-Windows-AppLocker/EXE and DLL')。现在它应该 return 记录您的 WMI 查询。

根据 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 and DLL"