使用PowerShell获取SCCM 2012全局条件的子项

时间:2017-03-21 14:31:53

标签: powershell sccm

我一直在寻找DAYS,虽然我有一些洗衣清单,列出了在PowerShell中制作全局条件的十几种不同方法,我想要弄清楚的是,是否有更好的方法制作“表达式树” “在PowerShell中出自SCCM 2012的全局条件。

我有一小部分我为应用要求定义的全局条件,其中一些是基于其他全球条件的组合。例如

  • 工作站X64(所有Windows 7 SP1 - Windows 10 X64操作系统)
  • 服务器X64(所有Windows Server 2008 R2 - 2016)

基于前两个的全局条件

  • 所有系统X64(工作站X64或服务器X64)

因此,使用Get-CMGlobalCondition Cmdlet,我可以获得所有全局条件的列表,我也可以使用可选的-Id,-Name来获取特定的全局条件

问题是每个Global Condition对象对其子节点的唯一引用(通过SDMPackageXML属性访问)是

  • AuthoringScopeId
  • LogicalName

这两项都不适用于Get-CMGlobalCondition

的ID(需要CI_ID)或名称(需要LocalizedDisplayName)

显然,我可以编写一些代码来反复解析整个Global Conditions集合并构建我的表达式树,但我宁愿做我将为其他任何基于Parent-Child的数据层次结构做的事情并对它应用一些老式的递归,但如果没有父母为每个孩子提供属性,很容易传递给Cmdlet,我就会被这种方式困住。

如果在PowerShell Cmdlet for SCCM中没有任何内容,我不反对使用直接WQL。

以防万一有人要求提供更新我们的UDI向导的导入脚本及其相关的.xml.app文件(包括将全局条件从SCCM转换为UDI中的交付规则)

0 个答案:

没有答案