在 Windows Server 2003 上,我根据计数器在“性能”中配置了一个警报。警报被触发,这在应用程序事件日志中被提及(作为源“SysmonLog”)。
但是,我试图让警报在触发时运行一个程序,但这是行不通的。
到目前为止,我遇到了三种不同的结果。
如果我打开警报并在“操作”选项卡下的“运行此程序”文本字段中配置“c:\windows\system32\cmd.exe”并将任何参数传递给它,事件查看器将声称“无法执行命令''"(单引号之间确实有一个空字符串)。
有时,相同的错误指的是命令“c:\windows\system32\cmd.exe”,但使用名为“Luster of Jade”的字符和换行符替换驱动器号(Unicode 字符 7498 后跟回车和换行符)。
在这两种情况下,应用程序日志中都不会记录实际事件(已触发警报)。此外,这两种情况都报告错误 0x522 (ERROR_PRIVILEGE_NOT_HELD)。
第三个结果发生在我将警报配置为在没有任何命令行参数的情况下运行程序时,在这种情况下,警报被触发的事实被写入事件日志,但程序根本没有运行(我自己编写了一个文本程序来看看它是否会运行,它不是)。
现在我很困惑。
有任何想法吗?
更新:我确实认为错误 522 是因为计数器属于另一台服务器。但是,由于警报被触发并且错误仅在我尝试运行带参数的程序时发生,而在我尝试运行不带参数的程序时不会发生,起初我认为这可能不是原因。
可行的解决方案是创建一个事件触发器来监视事件日志并从中运行程序。
根本无法说服警报运行程序。