首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WMIC在查询产品时返回错误

WMIC在查询产品时返回错误
EN

Server Fault用户
提问于 2010-02-25 11:19:32
回答 2查看 8.6K关注 0票数 1

我试图在我的服务器上自动安装MSI,但是在安装之前,我需要从服务器卸载以前的版本。

在互联网上搜索时,我发现WMIC是所需的工具,但是在服务器上设置WMI似乎有问题。运行以下命令会产生错误:

命令prompt>wmic

然后在工具内部

/trace:on

产品得名

这将返回一长串成功和一个失败:

代码语言:javascript
运行
复制
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 2003 R2的标准安装上运行这一程序,并具有管理员权限。

谢谢

Stu

EN

回答 2

Server Fault用户

发布于 2010-02-26 01:57:53

MSI的自动化安装有很多种方法,WMIC就是其中之一。您是否考虑过一种更简单的方法,比如批处理文件:

代码语言:javascript
运行
复制
rem Uninstall old program:
msiexec /qb /x {05EC21B8-4593-3037-A781-A6B5AFFCB19D}
rem Install new program:
msiexec /qb /i MyNewProgram.msi

(当然,用程序的GUID或Uninstall密钥名替换上面的GUID )。

或者,您可以使用Windows安装程序的自动化接口Windows安装程序的自动化接口

或者,您可以通过VBScript或PowerShell使用WMI来完成与WMIC相同的任务。但看起来WMI可能有点漏水了。

我对我看到的东西没有办法,但我确实有几件事你可以试试。我最近花了一些时间来解决WMI问题,所以也许有几种同样的技术会在这里起作用。

首先,这里有一个VBScript,它应该输出与product get name相同的内容。将其保存到文件getProductNames.vbs并执行它。

代码语言:javascript
运行
复制
Option Explicit

Dim strComputer
Dim objWMIService, colProducts, objProduct
Dim arrstrProducts(), i

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colProducts = objWMIService.ExecQuery("Select * From Win32_Product")

i = 0
For Each objProduct in colProducts
    ReDim Preserve arrStrProducts(i)
    arrStrProducts(i) = objProduct.Name
    i = i + 1
Next

WScript.Echo Join(arrStrProducts, vbNewLine)

现在,如果这是可行的,那么在wbemtest中尝试同样的方法。

  1. 启动wbemtest程序。
  2. 单击Connect...
  3. root\default更改为root\cimv2,然后单击Connect
  4. 单击Query...
  5. 输入Select * from Win32_Product,然后单击Apply

这应该会返回一个产品列表。如果是这样的话,那么WMI很可能是好的,而且WMIC有问题。如果脚本运行正常,但没有工作,请在命令提示符下尝试以下操作:

代码语言:javascript
运行
复制
regsvr32 wbemdisp.dll

然后再次运行wbemtest查询。

如果脚本和wbemtest都不能工作,那么WMI可能是超级水龙头,您将不得不修复它。

票数 1
EN

Server Fault用户

发布于 2010-04-15 20:04:30

您是否验证已启用WMI提供程序?默认情况下,在某些版本的Windows上没有安装它。

添加/删除程序->添加/删除->组件、->管理和监视工具-> WMI Windows安装程序提供程序。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/116693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档