情况摘要
我拥有一些用于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卸载执行的相同过程吗?是否有其他方法可以卸载我错过的软件?