具有Powershell的卸载软件(ArcFM),MSI中没有删除选项

问题描述 投票:0回答:1

情况概要

我有一些用于ArcGIS的第三方扩展软件,需要能够使用powershell脚本进行卸载。我已经使用AppDeployToolkit for powershell成功安装和卸载了一套软件,但是在尝试卸载该程序时遇到了麻烦。我可以通过使用“卸载参数”运行MSI来卸载所有内容。不幸的是,该第三方扩展在msi中没有卸载/删除选项(当我手动运行时,没有修复,删除或卸载选项)。它只是尝试再次安装。但是,我可以从Windows中的“应用和功能”程序GUI工具成功卸载。

这是我尝试过的事情:

尝试A:使用AppDeployToolkit

Execute-MSI -Action "Uninstall" -Path "Path\To\ArcFM.msi"

输出:错误:应用程序已安装

尝试B:使用WMI对象

$app = get-wmiobject -class win32_product |where-object {$_.Name -Match "ArcFM Solution Desktop*"}
$app.Uninstall()

输出1603错误(这是安装错误的错误代码)

尝试C:使用卸载包

$app = get-package -provider programs -includewindowsinstaller -name "ArcFM*
Uninstall-Package -Name $app

输出:要求我自动安装Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll。当我输入Y自动安装时,出现此错误...

Uninstall-Package : No package found for 'Microsoft.PackageManagement.Packaging.SoftwareIdentity'.
At line:1 char:1
+ Uninstall-Package -Name $arcfm2
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...ninstallPackage:UninstallPackage) [Uninstall-Package], Exception
    + FullyQualifiedErrorId : NoMatchFound,Microsoft.PowerShell.PackageManagement.Cmdlets.UninstallPackage

我的问题

我的总体问题是“如何从Powershell卸载该软件?”

但更具体地说。。。

CAN

从“应用程序和功能”中将其卸载。因此,当我使用GUI来执行此操作时,Windows如何执行卸载?它不使用MSI,显然也不使用wmi对象。它不能使用Uninstall-Package,因为它甚至没有安装在计算机上。我有办法执行添加/删除程序以从Powershell卸载执行的相同过程吗?是否有其他方法可以卸载我错过的软件?

情况概述,我具有一些用于ArcGIS的第三方扩展软件,需要能够使用powershell脚本进行卸载。我已经成功安装并卸载了一套...

windows powershell wmi uninstall get-wmiobject
1个回答
1
投票

[在上一世,我使用了一个有趣的产品PDQ来管理应用程序部署。该产品的很酷的功能之一是,它为已安装的应用程序拉出了产品GUID,并为其构建了卸载程序。这是怎么做的:

© www.soinside.com 2019 - 2024. All rights reserved.