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

如何远程静默卸载Microsoft Visio 2016/2019

批量远程静默卸载Visio 2016/2019解决方案

核心结论

通过注册表获取卸载字符串是完全可行的,且是针对Office系列产品卸载的可靠方案——你之前的Uninstall-Package和wmic命令失效,大概率是因为未适配Office的卸载逻辑,而直接调用注册表中的卸载命令并添加静默参数,能解决这个问题。


步骤1:远程获取目标机器的Visio卸载字符串

Office产品的卸载信息会存储在指定注册表路径中,可通过PowerShell远程提取。以下是适配批量场景的命令:

# 替换为你的目标机器名/IP列表
$computers = @("PC-01", "PC-02", "PC-03")

foreach ($pc in $computers) {
    Write-Host "正在获取 $pc 的Visio卸载信息..."
    $uninstallStrings = PsExec.exe \\$pc powershell -Command "
        'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
        'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*',
        'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' | 
        ForEach-Object { Get-ItemProperty $_ -ErrorAction SilentlyContinue } |
        Where-Object { $_.DisplayName -match 'Visio (2016|2019)' } |
        Select-Object -ExpandProperty UninstallString
    " 2>&1 | Where-Object { $_ -match '^(MsiExec|".*setup.exe")' }

    # 临时保存当前机器的卸载命令,后续执行
    $uninstallStrings | Out-File -Path ".\$pc-visio-uninstall.txt" -Encoding utf8
}

步骤2:修改卸载字符串为静默模式

提取到的原始卸载命令需要添加静默参数,确保无交互执行:

两种卸载命令的调整方式

  1. setup.exe开头的命令(适用于Click-to-Run版本)
    原命令示例:

    "C:\Program Files\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\setup.exe" /uninstall VISPRO /dll OSETUP.DLL
    

    添加静默参数后:

    "C:\Program Files\Common Files\Microsoft Shared\OFFICE16\Office Setup Controller\setup.exe" /uninstall VISPRO /dll OSETUP.DLL /quiet /norestart
    

    参数说明:/quiet 静默执行,/norestart 卸载完成后不自动重启

  2. MsiExec.exe开头的命令(适用于MSI安装版本)
    原命令示例:

    MsiExec.exe /X{90150000-0051-0000-1000-0000000FF1CE}
    

    添加静默参数后:

    MsiExec.exe /X{90150000-0051-0000-1000-0000000FF1CE} /qn /norestart
    

    参数说明:/qn 完全静默无界面,/norestart 禁止自动重启


步骤3:批量远程执行静默卸载

结合PsExec以系统权限执行调整后的卸载命令:

$computers = @("PC-01", "PC-02", "PC-03")

foreach ($pc in $computers) {
    $commands = Get-Content -Path ".\$pc-visio-uninstall.txt"
    foreach ($cmd in $commands) {
        # 自动添加静默参数
        $silentCmd = if ($cmd -match 'setup.exe') {
            "$cmd /quiet /norestart"
        } else {
            "$cmd /qn /norestart"
        }

        Write-Host "正在卸载 $pc 的Visio..."
        # -s参数以系统权限执行,确保卸载权限足够
        PsExec.exe \\$pc -s cmd /c "$silentCmd"
    }
}

特殊情况处理

如果上述方法仍残留Visio文件,可使用微软官方卸载工具远程执行:

# 1. 先将官方卸载工具复制到远程机器
PsExec.exe \\PC-01 -s cmd /c "copy \\你的共享路径\SetupProd_OffScrub.exe C:\Temp\"

# 2. 静默卸载Visio
PsExec.exe \\PC-01 -s cmd /c "C:\Temp\SetupProd_OffScrub.exe /quiet /product visio"

内容的提问来源于stack exchange,提问作者Ercüment

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:22:07