彻底卸载金山毒霸(非专业)
阅前须知:本文包含了我自己都不明白的操作,有个稀里糊涂就删成功的步骤,有些地方可能有问题,建议先整体看一遍再根据需要来操作。
一、简单卸载软件
[Win+R]输入[control]打开控制面板

进入[卸载程序],找到金山毒霸右键卸载。

然后我就发现金山毒霸还在:(
二、卸载残留文件
金山毒霸残留文件一般在以下五个位置
C:\Program Files\Kingsoft # 我这个位置没有文件,不过搜索到别人有,就加进来了
C:\Program Files (x86)\Kingsoft
C:\Users\ 你的用户名 \AppData\Local\Kingsoft
C:\Users\ 你的用户名 \AppData\Roaming\Kingsoft
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\金山毒霸 # 这个里面是快捷方式,可以直接右键删除
这些文件右键删除会显示有程序运行无法删除,所以我在安全模式用cmd删除(不同电脑的安全模式进入方式不同,这里不详细展开),代码如下
点击查看代码(建议看完之后的内容的再看这个)
taskkill /f /im ksafe.exe
taskkill /f /im kingsoft.exe
rd /s /q "C:\Program Files\Kingsoft"
rd /s /q "C:\Program Files (x86)\Kingsoft"
rd /s /q "%localappdata%\Kingsoft"
rd /s /q "%appdata%\Kingsoft"
这个"C:\Program Files (x86)\Kingsoft"尤其顽强,用cmd强制删除会显示“系统找不到指定路径”,安全模式也是这样显示。

这里可能是因为(x86)前少打了一个空格,总之我当时没想到这回事,一心觉得是金山毒霸在搞鬼。
于是我离开安全模式,开机搜起了文件路径dir /s /b C:\Program Files(x86)``dir /s /b C:\Program Files,都显示找不到文件。这里除了(x86)前少打了一个空格,还可能是我没有在路径加引号的原因,但我当时没想到这回事,我觉得是金山毒霸改权限它故意的。
于是我想先解决系统找不到文件路径的问题,找到了全网最深度彻底解决Windows找不到文件XXX。
确诊步骤:运行管理员权限打开powershell,运行Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options' | Select-Object -ExpandProperty PSChildName,出现一大堆exe就是同一症状。
虽然文章开头看起来和我没什么关系,但症状对的上啊————系统已经被某个程序(金山毒霸)批量修改了IFEO注册表项。于是我照葫芦画瓢做了。
在管理员权限的powershell运行以下内容
# 导出整个 IFEO 分支作为备份
reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" "$env:USERPROFILE\Desktop\IFEO_backup.reg"
# 获取所有子键
$keys = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
# 保留系统默认的那几个
$keep = @("{ApplicationVerifierGlobalSettings}", "explorer.exe", "sdbinst.exe")
# 删除其余所有键
foreach ($k in $keys) {
if ($keep -notcontains $k.PSChildName) {
Remove-Item $k.PSPath -Recurse -Force
Write-Host "已删除:$($k.PSChildName)"
}
}
Write-Host "所有非系统 IFEO 项已清理完成。重启电脑后生效。"
注册表备份的东西在桌面上,不备份用系统自己的修复也可以
如果出现大量 :不允许所请求的注册表访问权。
则继续在管理员权限的powershell运行以下代码
# 1. 定义目标路径
$baseKey = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options'
# 2. 备份
reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" "$env:USERPROFILE\Desktop\IFEO_backup_full.reg"
# 3. 获取所有子键
$keys = Get-ChildItem $baseKey
# 4. 跳过系统保留项
$keep = @("{ApplicationVerifierGlobalSettings}")
foreach ($k in $keys) {
if ($keep -notcontains $k.PSChildName) {
try {
# 重新设置权限(取得所有权 + 授权管理员)
$acl = Get-Acl $k.PSPath
$rule = New-Object System.Security.AccessControl.RegistryAccessRule("Administrators","FullControl","Allow")
$acl.SetAccessRule($rule)
Set-Acl $k.PSPath $acl
# 尝试删除
Remove-Item $k.PSPath -Recurse -Force
Write-Host " 已强制删除:" $k.PSChildName
}
catch {
Write-Warning "⚠️ 无法删除:$($k.PSChildName) —— $($_.Exception.Message)"
}
}
}
哦吼,我按着上面的步骤做完,文件路径就能搜到了,再尝试rd /s /q "C:\Program Files (x86)\Kingsoft"文件也能删掉了。(甚至还没进安全模式)
接着可以删除金山毒霸的驱动文件
先停止并删除服务
sc stop ksapi64
sc delete ksapi64
sc stop kxescore
sc delete kxescore
sc stop kxewsc
sc delete kxewsc
再进C:\Windows\System32\drivers\删除驱动文件。
kxescore和kxewsc都在前面删掉的文件里,删下面这些驱动。权限不够就参考第三点注册表抬权限,强制删除。
ksapi64.sys
ksapi64_arm.sys
ksapi.sys
kdhacker.sys
kdhacker64.sys
kisnetflt.sys
kisnetflt64_arm.sys
确认删干净
sc query ksapi64
sc query kxescore
sc query kxewsc
提示 “指定的服务不存在”,就说明删干净了。
由于我是先卸载一部分注册表后删除的服务,所以这里kxewsc显示的是‘拒绝访问’,这个检测结果STATE是STOPPED状态,WIN32_EXIT_CODE是1077,表示服务从未启动。这是因为我在注册表编辑器里已经把kxewsc这个服务项删掉了,所以系统找不到它,只是系统缓存里还留着个名字,不用管不影响。

三、卸载注册表残留
[Win+R]输入[regedit]打开注册表,搜索以下关键词,把搜到的全都删掉。
KSafe
kxetray
kxescore
kisnetflt
kdhacker
ksapi
KWatch
KNetWch
金山
Kingsoft
注意:一定要确认是金山毒霸的才删,不确认就去问ai,千万不要删错了。数据列有kingsoft都是金山毒霸的,没有的就要注意,千万千万不要删错了。以防万一可以先备份一下注册表。
删除期间,会出现无法删除的注册表。

可以给给注册表项加权限,强制删除。
右键该注册项所在的文件夹

打开高级

上方所有者点更改,这里留意一下自己的Windows用户名(一般是DESKTOP-XXXXXX\你的名字)

输入Windows用户名,点检查名称,确认后确定

勾选「替换子容器和对象的所有者」,点确定

回到权限窗口,给User用户勾选完全控制,然后应用确定

然后这个注册表就能删除了。
二编补充:
设置->应用->安装的应用,搜索金山毒霸,搜出来的都删掉。

三编补充:增加残留驱动删除,添加注册表关键词
四编补充:金山毒霸捆绑了PCWebNFFTool,C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PCWebNFFTool可双击uninstall卸载。


浙公网安备 33010602011771号