Win32_基板的WMI查询未返回任何结果 以下C++代码,通过WMI 检索主板信息,除大多数强>:< /P> IEnumWbemClassObject* pEnumerator = NULL; hres = pSvc->ExecQuery( bstr_t("WQL"), bstr_t("Select * from Win32_BaseBoard"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); if (FAILED(hres)) { // handle error, exit } IWbemClassObject *pclsObj = NULL; ULONG uReturn = 0; while (pEnumerator) { HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn); if(0 == uReturn) { break; } VARIANT vtProp; hr = pclsObj->Get(L"Product", 0, &vtProp, 0, 0); std::wstring productNo = vtProp.bstrVal; // do stuff with productNo }

Win32_基板的WMI查询未返回任何结果 以下C++代码,通过WMI 检索主板信息,除大多数强>:< /P> IEnumWbemClassObject* pEnumerator = NULL; hres = pSvc->ExecQuery( bstr_t("WQL"), bstr_t("Select * from Win32_BaseBoard"), WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumerator); if (FAILED(hres)) { // handle error, exit } IWbemClassObject *pclsObj = NULL; ULONG uReturn = 0; while (pEnumerator) { HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1, &pclsObj, &uReturn); if(0 == uReturn) { break; } VARIANT vtProp; hr = pclsObj->Get(L"Product", 0, &vtProp, 0, 0); std::wstring productNo = vtProp.bstrVal; // do stuff with productNo },c++,wmi,C++,Wmi,具体来说,pEnumerator->Next()返回0,因此pclsObj保留为空 您是否遇到过这样的情况:Win32_BaseBoard上的WMI查询不返回任何条目?VirtualBox虚拟机中的My clean Windows XP SP3/w.NET Framework 2.0计算机不返回任何记录,如“wmic”工具所示: 因此,这似乎是一种正常情况,而不仅仅是一种孤立的发病率。我会考虑可能不会出现任何记录。您好,您可以查询任何其他类并获取结果吗?例如,Win32_BIOS返回什么?我的想

具体来说,
pEnumerator->Next()
返回0,因此
pclsObj
保留为空


您是否遇到过这样的情况:Win32_BaseBoard上的WMI查询不返回任何条目?

VirtualBox虚拟机中的My clean Windows XP SP3/w.NET Framework 2.0计算机不返回任何记录,如“wmic”工具所示:


因此,这似乎是一种正常情况,而不仅仅是一种孤立的发病率。我会考虑可能不会出现任何记录。

您好,您可以查询任何其他类并获取结果吗?例如,Win32_BIOS返回什么?我的想法是,这可能是WMI的一个问题。好的想法。我将与运行此代码的机器的客户进行验证。此代码存在一个开放的bug
wmic:root\cli>BASEBOARD
No Instance(s) Available