You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法删除SecurityCenter中残留的第三方AV注册表项,请求解决权限及清理问题

无法删除SecurityCenter中残留的第三方AV注册表项,请求解决权限及清理问题

看起来你遇到了SecurityCenter注册表项权限锁定的典型问题——这些第三方AV的残留项通常会被系统或原软件设置了严格的权限,哪怕是普通管理员权限也碰不了。我来给你几个实用的解决思路:

1. 先搞定权限:获取所有权并修改访问控制

这类注册表项默认的所有者可能不是本地管理员组,所以第一步要先抢回所有权,再给自己加完全控制权限。

手动操作(单台PC)

打开注册表编辑器(regedit.exe),导航到HKLM:\SOFTWARE\Microsoft\SecurityCenter\Provider\Av

  • 右键目标键 → 「权限」→ 「高级」
  • 点击「更改」,输入Administrators并检查名称,确定后设置所有者为管理员组
  • 回到权限界面,给Administrators组勾选「完全控制」,应用保存

脚本批量处理

如果要在多台PC上操作,用PowerShell脚本更高效,记得以管理员身份运行PowerShell

# 目标注册表路径
$regPath = "HKLM:\SOFTWARE\Microsoft\SecurityCenter\Provider\Av"

# 获取当前管理员的SID
$currentAdminSID = [System.Security.Principal.WindowsIdentity]::GetCurrent().User.Value

# 获取注册表项的ACL对象
$regAcl = Get-Item -Path $regPath -ErrorAction Stop | Get-Acl

# 更改所有者为当前管理员
$regAcl.SetOwner([System.Security.Principal.SecurityIdentifier]$currentAdminSID)
Set-Acl -Path $regPath -AclObject $regAcl

# 添加完全控制权限规则
$accessRule = New-Object System.Security.AccessControl.RegistryAccessRule(
    $currentAdminSID,
    "FullControl",
    "ContainerInherit,ObjectInherit",
    "None",
    "Allow"
)
$regAcl.AddAccessRule($accessRule)
Set-Acl -Path $regPath -AclObject $regAcl

2. 权限搞定后,清理残留注册表项

权限设置完成后,就可以直接删除目标项了:

# 删除整个Av键及其所有子项(谨慎操作,确认没有需要保留的内容)
Remove-Item -Path $regPath -Recurse -Force -ErrorAction SilentlyContinue

如果你只想删除第三方AV的残留,保留Defender的项,可以先筛选再删除:

# 枚举子项,排除Defender相关后删除
Get-ChildItem -Path $regPath | Where-Object { 
    $_.GetValue("DisplayName") -notlike "*Defender*" 
} | ForEach-Object {
    Remove-Item -Path $_.PSPath -Recurse -Force
}

3. 为什么之前的WMI命令没效果?

你用的Get-WmiObject ... | Delete()操作的是root\SecurityCenter2下的WMI类,这个命令只会更新WMI数据库里的AV产品记录,但不会直接清理对应的注册表项——WMI记录和注册表是两个独立的存储,所以才会出现WMI里删了,但注册表残留还在的情况。

4. 多台PC批量处理技巧

如果要在一堆PC上执行,把权限脚本和删除脚本打包成一个CleanAVReg.ps1文件,然后用PowerShell远程执行(前提是目标PC开启了WinRM,且你有远程管理员权限):

# 替换成你的目标PC列表
$computerList = @("PC-001", "PC-002", "PC-003")
Invoke-Command -ComputerName $computerList -FilePath .\CleanAVReg.ps1 -Credential (Get-Credential)

备注:内容来源于stack exchange,提问作者Kav

火山引擎 最新活动