【问题标题】:Error while fetching null valued array columns in WQL (WMI Query Language)在 WQL(WMI 查询语言)中获取空值数组列时出错
【发布时间】:2014-03-31 07:45:12
【问题描述】:

我对 WQL(WMI 查询语言)世界并不陌生。我正在尝试使用 WQL 查询 ConfigMgr 2012,但是当我尝试在逗号分隔的选择子句中提及列的名称时遇到错误。仅当获取的列是数组类型并且包含空值时才会发生错误。如果数组列有一些值,它工作正常。即使列是非数组类型(字符串、整数等)并且包含空值,同样的工作也很好。我已经详细说明了下面的示例查询:

当我触发以下查询时,它运行良好:

查询 #1:SELECT * from SMS_PROGRAM

但是当我触发以下查询时,它会导致错误:

查询 #2:SELECT PackageID, SupportedOperatingSystems from SMS_PROGRAM

(GenericFailure) 错误代码为 0x80041001

对于包含 7 条记录的结果集中的所有记录,这里的 SupportedOperatingSystems 属性为空。该属性是一个包含SMS_OS_Details 类对象的数组。我已经使用 wbemtest 工具获得了这些详细信息。我请求如果有人遇到过这个问题,那么任何帮助将不胜感激。

【问题讨论】:

    标签: wmi-query sccm wql


    【解决方案1】:

    我从公司的一位同事那里得到了答复。他是这样回复我的:

    “你得到 NULL 是因为它是一个惰性属性。你 根本无法以您的方式在您的选择查询中包含惰性属性 正在做。您必须使用 * 然后解析对象。”

    什么是惰性属性以及如何阅读它们,请点击以下链接:

    http://msdn.microsoft.com/en-us/library/jj218055.aspx

    属性SupportedOperatingSystems 已在 MSDN 文档中定义为惰性,如下所述:

    http://msdn.microsoft.com/en-us/library/cc144361.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多