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

如何在PowerShell中以管理员身份启动msiexec实现无UAC静默卸载Adobe Acrobat Reader?

批量卸载Adobe Acrobat Reader无UAC提示解决方案

问题背景

批量卸载Adobe Acrobat Reader时,使用msiexec /qn参数触发Error 1730权限错误;改用/qb参数会弹出UAC提示,手动确认后可卸载,但无法批量推送。当前脚本通过注册表读取卸载GUID,调用Start-Process指定域凭据启动msiexec,但管理员账号运行仍无法绕过UAC,需无交互的批量卸载方案。

核心问题解析

  • Error 1730是Windows Installer权限不足错误,说明msiexec未在足够权限的上下文运行
  • UAC提示源于管理员账号默认以标准用户权限启动进程,Start-Process -Credential无法绕过UAC,反而会触发验证

可行解决方案

方案1:组策略部署卸载(批量环境首选)

  • 打开组策略管理器,新建软件部署包,选择高级部署模式
  • 定位至Adobe Acrobat Reader的MSI安装包,或直接使用卸载GUID配置部署类型为卸载
  • 设置为计算机启动时执行(计算机级部署),组策略会在系统上下文自动执行卸载,完全绕过UAC且无用户交互

方案2:本地系统账户上下文执行(非组策略环境)

利用本地系统账户的最高权限特性,绕过UAC限制:

  1. 使用Sysinternals工具PsExec执行卸载命令:
# 需确保PsExec已在目标机器PATH中,或指定完整路径
$regPath = 'HKLM:\Software\Wow6432Node\Adobe\Acrobat Reader\DC\Installer'
$guid = Get-ItemPropertyValue -Path $regPath -Name 'ENU_GUID' -ErrorAction Stop
Start-Process -FilePath "psexec.exe" -ArgumentList "-s msiexec.exe /x $guid /qn /norestart" -Wait -NoNewWindow
  • -s参数指定以本地系统账户运行,无UAC限制且权限足够
  1. 通过任务计划创建高权限任务:
$regPath = 'HKLM:\Software\Wow6432Node\Adobe\Acrobat Reader\DC\Installer'
$guid = Get-ItemPropertyValue -Path $regPath -Name 'ENU_GUID' -ErrorAction Stop

$taskName = "UninstallAcrobatReader"
$action = New-ScheduledTaskAction -Execute "msiexec.exe" -Argument "/x $guid /qn /norestart"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddSeconds(10)
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest

Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Force
Start-ScheduledTask -TaskName $taskName
Start-Sleep -Seconds 30
Unregister-ScheduledTask -TaskName $taskName -Confirm:$false
  • 任务以本地系统账户、最高权限运行,无UAC提示

方案3:修复Error 1730,直接使用/qn参数

确保脚本在真正的高权限上下文执行(而非管理员用户的标准权限):

  • 右键PowerShell选择「以管理员身份运行」,直接执行:
$regPath = 'HKLM:\Software\Wow6432Node\Adobe\Acrobat Reader\DC\Installer'
$guid = Get-ItemPropertyValue -Path $regPath -Name 'ENU_GUID' -ErrorAction Stop
msiexec.exe /x $guid /qn /norestart
  • 批量推送时,结合PsExec或任务计划的方式,确保命令在高权限上下文运行,即可避免Error 1730和UAC提示

原脚本问题修正

原脚本存在全局变量冗余、Invoke-Command无意义、-Credential触发UAC等问题,修正后的基础脚本(需高权限运行):

function Get-AcrobatGuid {
    $regPath = 'HKLM:\Software\Wow6432Node\Adobe\Acrobat Reader\DC\Installer'
    try {
        return Get-ItemPropertyValue -Path $regPath -Name 'ENU_GUID' -ErrorAction Stop
    }
    catch {
        Write-Error "未找到Adobe Acrobat Reader注册表项"
        exit 1
    }
}

function Uninstall-Acrobat {
    $guid = Get-AcrobatGuid
    $process = Start-Process -FilePath "msiexec.exe" -ArgumentList "/x $guid /qn /norestart" -Wait -PassThru -NoNewWindow
    if ($process.ExitCode -eq 0) {
        Write-Host "卸载成功"
    }
    else {
        Write-Host "卸载失败,退出码:$($process.ExitCode)"
    }
}

Uninstall-Acrobat

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:41:07