我们拥有超过 15,000 台机器的大型装置。他们应该安装了趋势科技版本;但是,我们不确定。
这些都是 Windows 机器,包括具有各种 SP 级别的 XP、RTM 和 SP1 的 Vista,以及一些 2000 和 2003 服务器。
我如何确定:
- 是否安装了任何 AV 产品?
- 安装的是什么版本的产品?
- 包装盒上的模式文件是什么版本?
想法?
谢谢,
我们拥有超过 15,000 台机器的大型装置。他们应该安装了趋势科技版本;但是,我们不确定。
这些都是 Windows 机器,包括具有各种 SP 级别的 XP、RTM 和 SP1 的 Vista,以及一些 2000 和 2003 服务器。
我如何确定:
想法?
谢谢,
由于您谈论的是 15,000 台主机,因此从网络中查询每台主机的效率将非常低。
Right Thing To Do™ 就是在每台主机上运行一个看门狗,以确保安装并运行适当的软件。如果您使用英特尔博锐之类的东西,这个看门狗可能是作为服务运行的软件、预定脚本甚至是基于硬件的软件。
要验证是否安装了 AV 软件,您可以使用以下 PowerShell 命令——
请注意,最后您有一个
filter
可以自定义的参数,以确保您正在查看正确的产品。在与操作员玩了一会儿之后
like
,您应该能够在这里和那里确定防病毒描述和细微变化。请注意,我上面的示例(任何包含“防病毒”一词的内容)非常简单。您应该寻找与您批准的防病毒软件匹配的特定模式(例如“Trend Micro Antivirus%”)filter
无论如何,上面的命令将返回与您的声明匹配的已安装产品的集合。从这里您可以测试是否$avSoftware.Count
大于零,在这种情况下您安装了防病毒软件。下面的例子列出了所有安装的杀毒软件——而不是仅仅打印一条消息说没有找到 AV,你显然应该做一些更有用的事情,例如
您还说您想获取已安装 AV 的版本。为此,您可以使用
Version
.Win32_Process
让我们像这样修改上面的代码来打印已安装软件的版本号——至于安装的病毒定义文件的版本,您必须依赖每个特定的 AV WMI 接口。为此,您必须查阅供应商的文档。
还有一件事要记住。如果 AV 没有运行,仅仅知道主机安装了 AV 可能是不够的。检查安装了哪个 AV 后,您应该确保其进程正在运行。为此,您必须知道每个 AV 软件的适当流程是什么,然后像这样寻找它们——
上面的示例查找名为“TeaTimer.exe”的 Spybot 进程(不完全是 AV,但你得到了图片)。修改它以查找您的进程。
现在,所有这些都表明,如果您要与数千个这样的主机打交道,您可能应该投资一些管理工具(例如 LANdesk、Microsoft System Center 或 Level Platforms)。这些工具会让您的生活变得轻松很多。
在当前版本的 Windows(xp sp3+、vista、win 7)中,您可以查询 Windows 安全中心使用的同一 WMI 提供程序,以了解防病毒产品是否已安装和最新。
这是一个例子:
也就是说,并非所有防病毒产品都会注册 WMI 提供商,但我怀疑大多数流行的产品都会注册。此外,目前尚不清楚这是否得到微软的官方支持,因此它可能会在未来的版本中消失。
您可以结合此处的其他 WMI 建议尝试它,如果这不起作用,则退回到扫描已安装的产品。
既然您提到趋势科技,而我们使用趋势,这就是我们所做的。计划任务对系统进行全面扫描并将结果放入文本文件中。实际上,它是一个以日期为文件名的日志文件……就像 C:\TRENDMICRO 文件夹中的 20090517.log 一样。因为这只是其中的扫描结果,所以它是一个小文件。
在我们大约有 100 台计算机的情况下,服务器上的 powershell 脚本很容易遍历所有计算机,并连接这些文件,并且只查找没有字符串“Virus found count(0)”的文件“ 在他们中。显然,如果该文件和短语不存在,则说明有问题:最近没有运行 AV、发现病毒、未安装 AV 等等。您可能需要一些更花哨的东西来扩展它。
但是,难道没有企业版本的 AV 可以为您完成所有工作,而不是我的穷人版本吗?
+1 为 Knox 关于企业版。我同意。Trend 的企业桌面解决方案有一个服务器,可以跟踪客户端以及他们当前拥有的扫描引擎和模式。它还允许您进行部署。我会用它来实现你的目标。使用此部署重新安装防毒墙网络版。我什至不会费心部署脚本来弄清楚你在游戏中的这个位置。最好重新开始。如果您还没有企业工具(这真的让我感到惊讶),请与 Trend 合作进行许可。如果你不这样做,那么有人需要为糟糕的购买决定负责。
我会制作一个登录脚本来检查各种注册表项或文件以确定是否安装了产品。然后脚本可以创建一个记录机器的日志。
不确定这有多实用,给定 15,000 台主机,但如果您有一个希望在文本文件中签入的计算机列表,您可以在注册表中查询卸载键并解析结果。
名为computers.txt 的文本文件,每行有一个机器名称:
名为 batch.bat 的示例:
我意识到这可能是文本中的一些信息过载,但它允许您解析您正在寻找的任何 A/V 软件的结果,而无需知道每个产品的卸载信息包含在注册表项中。
您还可以针对特定产品的注册表项对其进行定制,将注册表查询替换为特定产品的注册表项。
依次回答你的问题
我会写一个脚本在每个系统上运行。您将查询卸载注册表项。您必须查看每个子项。在这种情况下,使用 WMI 是最好的方法。在该键中,您将看到产品名称和版本。有关脚本,请参阅此示例。
3.
我会反复试验,但在 Trend 的情况下,我想他们会将他们的定义版本放在注册表中 HKEY_LOCAL_MACHINE\Software\TrendMicro 或本地目录的配置或 ini 文件中。
这仅适用于该版本的 AV 软件。您必须为多个版本执行此操作。