Powershell静默卸载“;“Microsoft报表查看器运行时2012”;
我已尝试了许多(MSI、PowerShell)以静默方式卸载以下应用程序: MSIPowershell静默卸载“;“Microsoft报表查看器运行时2012”;,powershell,reportviewer,uninstallation,windows-installer,Powershell,Reportviewer,Uninstallation,Windows Installer,我已尝试了许多(MSI、PowerShell)以静默方式卸载以下应用程序: MSI $ReportViewer2012 = Get-WmiObject -Class Win32_Product -Filter "Name = 'Microsoft Report Viewer 2012 Runtime'" | Select-Object -Expand IdentifyingNumber if ($ReportViewer2012) { echo "Uni
$ReportViewer2012 = Get-WmiObject -Class Win32_Product -Filter "Name = 'Microsoft Report Viewer 2012 Runtime'" | Select-Object -Expand IdentifyingNumber
if ($ReportViewer2012)
{
echo "Unistalling: Microsoft Report Viewer 2012 Runtime"
msiexec /passive /x $ReportViewer2012 | Out-Null
}
Powershell
(Get-WMIObject Win32_Product -Filter 'name="Microsoft Report Viewer 2012 Runtime"').Uninstall()
但是,在没有任何影响的情况下,我确实获得了输出的详细日志(/L*V):
MSI(20:84)[14:42:57:903]:SOURCEMGMT:由于缺少/无法访问包,源无效
MSI(20:84)[14:42:57:903]:注:1:17062:-2147483647 3:ReportViewer.MSI
MSI(20:84)[14:42:57:903]:源管理:处理URL源列表
MSI(20:84)[14:42:57:903]:注:1:1402 2:UNKNOWN\URL 3:2
MSI(20:84)[14:42:57:903]:注:1:17062:-2147483647 3:ReportViewer.MSI
MSI(20:84)[14:42:57:903]:注:1:1706 2:3:ReportViewer.MSI
MSI(20:84)[14:42:57:903]:源管理:未能解析源
MSI(20:84)[14:42:57:903]:MainEngineThread正在返回1612
MSI(20:5C)[14:42:57:904]:用户策略值“DisableRollback”为0
MSI(20:5C)[14:42:57:904]:计算机策略值“DisableRollback”为0
MSI(20:5C)[14:42:57:904]:递增计数器以禁用关机。递增后的计数器:0
MSI(20:5C)[14:42:57:905]:注:1:1402 2:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3:2
MSI(20:5C)[14:42:57:905]:注:1:1402 2:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3:2
MSI(20:5C)[14:42:57:905]:用于禁用关机的递减计数器。如果计数器>=0,关机将被拒绝。减量后的计数器:-1
MSI(c)(E8:EC)[14:42:57:906]:用于禁用关机的递减计数器。如果计数器>=0,关机将被拒绝。减量后的计数器:-1
MSI(c)(E8:EC)[14:42:57:906]:MainEngineThread正在返回1612
这个问题是没有结论的。我想知道是什么导致了这个问题,以及如何解决它?当您执行静默卸载错误时,它看起来就像您所想的那样,并且被抑制。当我尝试在UI中卸载软件包时,出现了一个对话框,要求我定位应用程序的MSI文件。我不知道它是怎么做到的,但我通过重新下载软件包并从中卸载来修复它。不必为了卸载应用程序而使用powershell脚本打包MSI会很好,但现在我没有更好的解决方案。当您执行静默卸载时,错误也会被抑制,当我尝试在UI中卸载包时,我看到一个对话框,要求我找到应用程序的MSI文件。我不知道它是怎么做到的,但我通过重新下载软件包并从中卸载来修复它。如果不需要用我的powershell脚本打包MSI来卸载应用程序就好了,但是现在我没有更好的解决方案。缺少/无法访问源代码 很明显,Windows Installer请求已安装产品的安装源以允许卸载是不正常的行为 快速修复?请在下面的“卸载MSI”下查找
Microsoft安装/卸载工具
您可以使用它来尝试以一种快速、自动和(我相信)可靠的方式解决无法卸载的MSI包的问题
更新:Microsoft工具应该能够解决您的问题。这个答案的其余部分是本着“让我们沉迷于此””:-)的精神编写的,并试图解释潜在的原因以及一些其他修复方法
另请参见下文,了解如何执行详细的调试日志记录,为您的特定卸载/安装问题收集更多的“英特尔”(可以查明MSI中的确切原因,例如特定的自定义操作)
您的问题可能的潜在原因是:
- 然后,卸载过程将尝试解析原始安装介质的源,以便获得所需的资源(二进制?),但由于原始源MSI已被删除且找不到,卸载过程将失败
- 这通常表示MSI设计问题。卸载中断,您被困在catch 22(无法卸载,无法升级)中。有关解决此问题的潜在方法,请参阅下面链接到的Microsoft工具
- 如果MSI设计问题确实是原因(并且可以证明是这样),您必须尝试与供应商合作,为其软件包提供可靠的、未来的修复方案,否则它将明显影响您自己产品的成功和可靠性。我想不用说
防病毒阻止
,磁盘空间问题
,用户/管理员修补
,系统还原
,等等SOURCEMGMT:由于缺少/无法访问包,源无效。
由于反病毒似乎不会阻止您下载的完整MSI运行,因此我认为该问题是MSI在卸载期间试图错误解决并从源媒体检索的缺失资源可能是
msiexec.exe /x {00000000-0000-0000-0000-00000000000C} /QN /L*V "C:\My.log" REBOOT=ReallySuppress