在 Windows Server 2008 和 Windows Server 2008 R2 上,使用 WMI 查询已安装的软件并且 Win32_Product 类事件会写入应用程序事件日志。
这些事件纯粹是信息性的,但每识别出一个软件就会生成一个事件。让我困扰的是描述中包含“Windows Installer 重新配置了该产品。产品名称:...”
为什么查询会触发产品已重新配置的通知?我们有针对服务器运行的脚本来查找更改,这会产生一点问题。 :(
还有谁见过这个吗?
答案1
格雷格,
如果可以的话,我强烈建议不要使用 Win32_Product。首先,它真的非常非常慢。其次,更重要的是,它可能会搞砸你的系统:
Win32_Product 类的工作方式是枚举系统上安装的每个 MSI 包。当某个包被触碰时,它会执行重新配置,验证应用程序(如果发现与原始 MSI 不一致,则进行修复)。
如果您有安装后配置的应用程序(即以前禁用的服务可以重新启用等),这可能是一个巨大的问题。
另外,您可以搜索特定文件并检查其版本以查看是否安装了应用程序。以下是我撰写的一篇博客文章的链接,其中描述了该技术(还附有 Darren Mar-Elia 讨论 Win32_Product 的文章的链接):
http://windowshell.wordpress.com/2010/07/08/wmi-query-for-an-installed-application/