我有一些用于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脚本进行卸载。我已经成功安装并卸载了一套...
[在上一世,我使用了一个有趣的产品PDQ来管理应用程序部署。该产品的很酷的功能之一是,它为已安装的应用程序拉出了产品GUID,并为其构建了卸载程序。这是怎么做的: