2014-03-31 30 views
0

我對WQL(WMI查詢語言)世界有點新不足。我試圖使用WQL查詢ConfigMgr 2012,但是當我嘗試在逗號分隔的select子句中提及列的名稱時,我遇到了一個錯誤。只有當提取的列是數組類型並且包含空值時纔會發生錯誤。如果數組列有一些值,它工作正常。即使列是非數組類型(字符串,int等)並且包含空值,同樣工作正常。當我火了下面的查詢在WQL(WMI查詢語言)中獲取空值數組列時出錯

它工作得很好:我已經闡述了下面的示例查詢

查詢#1:SELECT * from SMS_PROGRAM

但是當我火了下面的查詢它導致錯誤:

查詢#2:SELECT PackageID, SupportedOperatingSystems from SMS_PROGRAM

(GenericFailure) with error code number 0x80041001

這裏SupportedOperatingSystems屬性爲所有記錄該COM e在包含7條記錄的結果集中。該屬性是一個包含SMS_OS_Details類的對象的數組。我已經使用wbemtest工具獲得了這些細節。我請求任何人遇到這個問題,那麼任何幫助將不勝感激。

回答

0

我從我公司的一位同事那裏得到了答案。這是什麼,他回答我:

"You get the NULL specifically because it is a lazy property. You simply cannot include a lazy property in your select query the way you are doing it. You must use * and then parse the object."

什麼是懶惰的性質,以及如何閱讀,請按照以下提到的鏈接:

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

酒店SupportedOperatingSystems已經被定義爲懶惰MSDN文檔如下所述:

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