在 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 是因为计数器属于另一台服务器。但是,由于触发了警报,并且只有当我尝试运行带有参数的程序时才会发生错误,而当我尝试运行不带参数的程序时不会发生错误,所以我一开始并不认为这可能是原因。
答案1
可行的解决方案是创建一个事件触发器来监视事件日志并从中运行一个程序。
根本无法说服警报运行程序。