3
SCCM全局条件WQL查询类型不匹配(wbemErrTypeMismatch-0x80041005)
我们一直在处理带有集合的包(现在是应用程序)的所有定位逻辑。现在,我们已经从SCCM 2007迁移到SCCM 2012 SP1,建议将逻辑移至应用程序模型,并使用全局条件和需求来实现它。这具有许多积极的好处-集合仅用于层次结构或逻辑分组,使用“高级”时我们可以实现更加无缝的应用程序部署,并改进了检测逻辑。 我将以Adobe Flash Player插件为例。我们只想将Adobe Flash Player插件部署到已安装Firefox的工作站。使用SCCM 2007 Package-Program模型,我们将基于WQL查询创建一个Collection,其中包含所有安装了Firefox的工作站: select * from SMS_R_System inner join SMS_G_System_SoftwareProduct on SMS_G_System_SoftwareProduct.ResourceId = SMS_R_System.ResourceId where SMS_G_System_SoftwareProduct.ProductName like "Mozilla Firefox" 一旦创建了Collection,就可以针对它部署Package-Program。我正在尝试使用应用程序的全局条件和需求逻辑来复制相同的逻辑。我基于全局条件构建WQL查询的所有尝试都导致了wbemErrTypeMismatch错误(2147749893 (0x80041005))。 现在,最佳实践建议我们将定位逻辑与应用程序捆绑在一起,我们需要做的是创建一个适当的WQL查询全局条件,然后我们可以使用应用程序的需求对其进行评估。 让我们从WQL查询开始。我使用Scriptomatic只是转储了SMS_InstalledSoftwareWMI类(属于root\cimv2\sms名称空间)中的所有内容。我可以肯定地确定,当尝试评估是否已安装某些东西时,SMS_InstalledSoftware是运行查询的最佳位置,因为Win32_Product仅适用于Windows Installer安装的软件。 我发现以下与Firefox相关的对象: ARPDisplayName: Mozilla Firefox 23.0.1 (x86 en-US) ChannelCode: ChannelID: CM_DSLID: EvidenceSource: CPXCCCCCCXCXCXCXXXXXCXXXXX InstallDirectoryValidation: 4 InstalledLocation: C:\Program Files (x86)\Mozilla …