一台电脑上同时跑两三家防护软件,实际效果不是三倍安全,而是蓝屏、互锁、或者两边都关了的防护真空。问题是光看桌面图标看不出来,需要从四个层次分别查。
第一层:安全中心里注册了什么
这一层只看得到自报了家门的:
Get-CimInstance -Namespace root\SecurityCenter2 -ClassName AntiVirusProduct |
Select-Object displayName, productState, pathToSignedFilePath
列表里出现两行以上,就已经确认多家共存。但这一层不可靠:很多静默安装的组件不往这里注册,它们只跑驱动。所以看到一行不代表安全,看到多行一定有问题。
第二层:卸载列表里到底装了什么
安全软件往往不是一个条目,而是四五个同厂商名字的项目。把卸载表拉出来比看开始菜单准确:
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' |
Where-Object {$_.DisplayName} |
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Sort-Object DisplayName
重点看三件事:同厂商前缀的条目是不是多于两个、InstallDate 里有没有你根本不记得是哪一天装的东西、Publisher 写的是不是一些陌生的小公司名字。第三件是静默安装最常见的痕迹。
第三层:内核驱动与驱动型服务
静默安装的组件大多数藏在这一层,因为拦截行为必须在驱动里做。先看运行中的驱动型服务,排除系统自带的那些:
Get-CimInstance Win32_SystemDriver |
Where-Object {$_.State -eq 'Running'} |
Select-Object Name, DisplayName, PathName
列表很长,全部人工看没有意义。用关键字筛,同时把中英文厂商词都放进去:
$kw = '360|huorong|tencent|qqpc|kingsoft|2345|卫士|管家|安全|杀毒|防火墙|shield|antivirus'
Get-CimInstance Win32_SystemDriver |
Where-Object {$_.State -eq 'Running' -and $_.PathName -match $kw} |
Select-Object Name, DisplayName, PathName
把这一段输出记下来。它比桌面上有没有图标可靠得多,因为图标可以隐藏,驱动加载了就一定在运行。
第四层:启动项与计划任务
很多组件不在驱动层,而是靠开机拉起与定时任务活着:
# 启动项(当前用户与全局 Run 键)
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' |
Select-Object * -ExcludeProperty PS*
# 非微软自带的计划任务
Get-ScheduledTask | Where-Object {$_.Author -notlike "Microsoft*"} |
Select-Object TaskName, TaskPath, State, Author
这一层能发现一类特殊情况:主程序已经卸载,但它的上报任务、定时弹窗任务还在跑。它们在任务列表里表现为来路不明的小可执行文件。
结果怎么判读
| 四层结果组合 | 含义 | 建议动作 |
|---|---|---|
| 一层只有一行,三、四层无额外命中 | 正常,只有一家 | 什么都不用做 |
| 一层多行,三层也多个驱动 | 真的多家实时防护共存 | 卸一家,不要只关模块 |
| 一层没有,三层命中多个驱动 | 静默安装,或者卸载残留 | 先确认在用哪个,再清其余 |
| 只有四层有残留 | 主程序已卸,垃圾还在 | 禁用任务即可,不必折腾驱动 |
| 二层同厂商条目超过四个 | 全家桶 | 一次性卸完,避免回装 |
发现多家之后怎么处理
先定下来留谁,再动手。保留标准不是谁名气大,而是谁在你机器上造成的干扰小,具体参考站内讲双杀软冲突定位那篇。
处理顺序固定:先用厂商官方卸载工具卸多余的那家,重启两次;重跑本脚本第二、三、四层确认结果;最后打开 Windows 安全中心确认实时保护已经接管。如果确认发现防护真空,先把 Defender 实时保护手动打开。
最后一句
查多家共存这件事,真正的难点不是命令,而是不要相信图标。静默安装的组件没有图标,卸载残留的驱动也没有图标,它们只能从安全中心注册、驱动列表和计划任务里读出来。把四层输出存成一个文件,以后重装或者换电脑时还能对照。