AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1001105
Accepted
Joe Smith
Joe Smith
Asked: 2020-01-31 09:45:24 +0800 CST2020-01-31 09:45:24 +0800 CST 2020-01-31 09:45:24 +0800 CST

无法使用 MSIEXEC 静默卸载 Python 3.8.1

  • 772

我最初使用此处找到的 MSI 在我们的组织中部署了 Python 3.8.1(如果相关,则通过 WSUS Package Publisher)。我使用 WSUS Package Publisher 安装了这些 MSI,并为每个 MSI 使用以下命令:

msiexec.exe /i core.msi /qn /norestart ALLUSERS=1

不幸的是,由于某种原因,这对我造成了许多问题,这些问题似乎都指向 ALLUSERS=1 被忽略,可能是由于安装程序缺乏提升(未出现在已安装的应用程序列表中,未通过 py 出现 - 0 列表)。令人沮丧的是,在我们意识到这些问题之前,这些都被意外地部署到了每个人身上。

要清理,我现在需要卸载这些 MSI。在受影响的机器上右键单击这些 MSI 并单击“卸载”可以正常工作 - 我会看到“您确定要卸载吗?” 提示,然后是提升请求,然后按预期卸载。

但是,因为我试图默默地这样做,以便我可以推出它。这是我试图通过提升的 shell 运行的命令:

 msiexec.exe /x .\core.msi /qn

什么都没发生。我可以在任务管理器中看到 msiexec.exe 正在运行而没有任何活动,所以我的感觉是它正在达到“你确定吗?” 提示并卡在该提示上。

如何在静默卸载期间绕过此提示?

windows python msi silent uninstall
  • 1 1 个回答
  • 2359 Views

1 个回答

  • Voted
  1. Best Answer
    Joe Smith
    2020-02-26T08:51:20+08:002020-02-26T08:51:20+08:00

    因此,在我和我的同事对此进行了一段时间的故障排除后,我们对情况和实际发生的情况有了更好的了解。这并不能解决我们最初尝试做的事情(通过 WSUS 部署 Python 3.8.1 MSI),但它至少可以帮助我们清理。希望这可以帮助其他可能在 WSUS Package Publisher 或其他方面经历过类似情况的管理员!

    我们通过 WSUS 部署 Python,这意味着所有本地计算机都将 Python 安装为 NTAUTH\SYSTEM。这解释了为什么 Python 在我在 .MST 中指定的位置(C:\Program Files\Python38)中正确安装,没有任何抱怨。

    出于某种原因,Python MSI 都忽略了 .MST 中的 ALLUSERS=1 调用,并将其指定为参数。不知道为什么(也许 Python 团队的某个人或有更深入了解的人可以加入?:))。

    这意味着,根据我的理解/测试,安装程序检测到它没有作为提升的进程运行,因此将 MSI 安装为用户 NTAUTH\SYSTEM,对于 NTAUTH\SYSTEM,将 Python 启动器等的密钥放在 HKCU而不是HKLM。但由于 .MST 和 NTAUTH\SYSTEM 拥有的访问权限,它会按要求将安装文件放在 C:\Program Files\Python38 中。

    这解释了为什么安装会失败,无论如何都无法卸载,以及为什么我们的 Python 启动器在 PATH 设置正确的情况下表现异常。

    • 安装将失败,因为密钥仍将全部放在 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\
    • 尽管安装成功,安装程序从未出现在已安装的应用程序中,因为它是为 NTAUTH\SYSTEM 而不是为所有用户安装的
    • 通过 MSIEXEC 或通过右键单击 MSI 进行卸载会声称它没有安装,因为从技术上讲,系统没有为系统(即提升时的所有用户)安装 Python,也没有为尝试卸载它的用户(即我的用户帐户,没有海拔)。
    • py -0 尽管选择了其他版本,但没有选择 Py38 安装,因为启动器正在搜索未安装 381 的 HKLM 密钥。

    因此,为了清理这个巨大的混乱,我们需要将所有 Python 3.8.1 MSI 卸载为 NTAUTH\SYSTEM,并且不进行提升。有几种方法可以做到这一点 - 通过下载并使用 PSEXEC 启动 CMD 或 Powershell 作为系统 (psexec64.exe -sid powershell.exe) 并通过它运行 MSIEXEC,或者(我们采用的方法)在机器,让它作为 NTAUTH\SYSTEM 运行,没有最高权限,并卸载任何具有“Python 3.8.1*”属性的东西。一个快速的 Powershell 脚本:

    $products = Get-WmiObject Win32_Product
    
    foreach ($pkg in (
            "Python 3.8.1 Tcl*",
            "Python 3.8.1 Util*",
            "Python 3.8.1 Dev*",
            "Python 3.8.1 pip*",
            "Python Launcher*",
            "Python 3.8.1 Exe*",
            "Python 3.8.1 Standard*",
            "Python 3.8.1 Core*",
            "Python 3.8.1 Documentation*",
            "Python 3.8.1 Test*",
            "Python 3.8.1 Add*"
        )) {
        $products | Where-Object {
            ($_.Name -like $pkg)
        } | Select-Object -ExpandProperty LocalPackage | Foreach-Object {
            msiexec.exe /x $_ /QN
        }
    }
    
    • 0

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve