You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地正常但SCCM部署的PowerShell卸载脚本无法识别注册表路径

问题排查与解决方法

1. 修复脚本拼写错误

你的脚本最后调用函数时写的是Unistall_SW,但函数定义是Uninstall_SW(少了一个字母n),这会直接导致函数无法执行。修正后的调用代码:

Uninstall_SW

2. 解决SCCM的32位/64位注册表重定向问题

这是核心原因:SCCM默认以32位进程执行PowerShell脚本,触发注册表重定向机制——32位程序访问HKLM\SOFTWARE时,会被自动重定向到HKLM\SOFTWARE\Wow6432Node。如果你的软件是64位的,卸载信息实际存储在原生HKLM\SOFTWARE路径下,32位PowerShell自然找不到。

两种解决方式:

  • 强制以64位PowerShell执行脚本:
    在SCCM部署类型的「程序」选项中,勾选**"以64位进程运行此程序"**(应用部署的话,在部署类型的「程序」标签页找到该选项)。
  • 显式访问64位注册表(可选):
    若无法修改SCCM执行位数,可在脚本中指定访问64位注册表视图,同时修正PowerShell注册表路径格式(需以HKLM:\开头):
    $path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{Product-cod-1}"
    
    function Uninstall_SW {
        Write-Host "Starting Uninstallation.."
        if(Test-Path $path -RegistryView 64) {
            $uninstallStr = (Get-ItemProperty -Path $path -RegistryView 64).UninstallString
            if($uninstallStr) {
                Write-Host "Uninstalling SW command: $uninstallStr"
                Start-Process -FilePath "cmd.exe" -ArgumentList "/c $uninstallStr /qn" -Wait -NoNewWindow
                Write-Host "Uninstall Complete"
            } else {
                Write-Host "No uninstall str found"
            }
        } else {
            Write-Host "Registry Path not found $path"
        }
    }
    
    Uninstall_SW
    

3. 权限验证

SCCM部署默认以系统权限运行,但如果目标注册表项{Product-cod-1}的权限设置限制了SYSTEM用户读取,也会导致路径无法访问:

  • 检查该注册表项的权限,确保SYSTEM用户拥有读取权限。
  • 确认SCCM部署选项中已勾选「以系统权限运行」(默认开启,若手动修改过需核实)。

4. Get-Package/Uninstall-Package无效的原因

同样是32位/64位上下文问题:32位PowerShell的Get-Package只能识别32位软件包,64位软件不会被列出。解决方式同上述,强制以64位PowerShell执行即可。如果需要替代方案,可使用CIM查询(注意:Win32_Product会触发MSI自检修复,不建议频繁使用):

$package = Get-CimInstance -ClassName Win32_Product -Filter "IdentifyingNumber='{Product-cod-1}'"
if($package) {
    $package.Uninstall()
}

内容的提问来源于stack exchange,提问作者SumRchn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:42:38