我正在尝试在我的服务器上自动安装 MSI,但是在继续安装之前,我需要从服务器上卸载以前的版本。
在互联网上搜索我发现 WMIC 是所需的工具,但似乎在服务器上设置 WMI 存在问题。运行以下命令会报错:
命令提示符>wmic
然后在工具里面
/跟踪:开启
产品获得名称
这将返回一长串成功和一个失败:
FAIL: IEnumWbemClassObject->Next(WBEM_INFINITE, 1, -, -)
Line: 396 File: d:\nt\admin\wmi\wbem\tools\wmic\execengine.cpp
Node - ENTECHORELDEV
ERROR:
Code = 0x80041010
Description = The specified class is not valid.
Facility = WMI
我正在尝试在具有管理员权限的 Windows Server 2003 R2 的标准安装上运行它。
谢谢
斯图
有许多方法可以自动(卸载)安装 MSI,WMIC 就是其中之一。您是否考虑过一种更简单的方法,例如执行以下操作的批处理文件:
(当然,将上面的 GUID 替换为程序的 GUID 或
Uninstall
键名)。或者,您可以使用Windows Installer 的自动化接口。
或者,您可以通过 VBScript 或 PowerShell 使用 WMI 来完成与 WMIC 相同的事情。但看起来 WMI 可能有点过时了。
我没有解决我所看到的问题,但我确实有一些你可以尝试的方法。我最近花了一些时间对 WMI 问题进行故障排除,所以也许其中一些相同的技术可以在这里工作。
首先,这是一个 VBScript,它应该输出与
product get name
. 将其保存到文件getProductNames.vbs
并执行它。现在,如果可行,请尝试使用
wbemtest
.wbemtest
程序。Connect...
root\default
为root\cimv2
,然后单击Connect
。Query...
Select * from Win32_Product
,然后单击Apply
。这应该返回一个产品列表。如果是这样,那么 WMI 可能没问题,而且 WMIC 出了点问题。如果脚本有效,但无效,请在命令提示符处尝试以下操作:
然后再次运行
wbemtest
查询。如果脚本和
wbemtest
工作都没有,那么 WMI 可能是超级水管,你将不得不修复它。您是否验证了 WMI 提供程序已启用?在某些版本的 Windows 上默认不安装它。
添加/删除程序 -> 添加/删除 Windows 组件 -> 管理和监视工具 -> WMI Windows Installer Provider。