New-CMRequirementRuleExpression

创建要求规则以使用复杂表达式计算自定义全局条件。

语法

New-CMRequirementRuleExpression
   [-AddAsGroup]
   [-AddExpression <ExpressionBase[]>]
   [-AddRequirementRule <Rule[]>]
   [-ClauseOperator <ConnectOperator>]
   [-GroupOperator <ConnectOperator>]
   [-RootExpression <ExpressionBase>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [<CommonParameters>]

说明

使用此 cmdlet 在应用程序部署类型上创建要求规则,该部署类型使用复杂表达式计算自定义全局条件。 创建全局条件时, “条件”类型 需要为 “表达式”。 这些表达式允许添加多个子句并使用逻辑运算符对其进行分组。

若要使用表达式创建自定义全局条件,请使用 New-CMGlobalConditionExpression cmdlet。

使用 New-CMRequirementRuleExpression cmdlet 后,对部署类型使用其中一个 Add-Set- cmdlet。 将此要求规则对象传递给 AddRequirementRemoveRequirement 参数。

有关详细信息,请参阅 部署类型要求创建全局条件

注意

从 Configuration Manager 站点驱动器运行 Configuration Manager cmdlet,例如 PS XYZ:\>。 有关详细信息,请参阅 入门

示例

示例 1:添加基本表达式

$rule1 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 2048 -RuleOperator GreaterEquals
$myRuleExpression = New-CMRequirementRuleExpression -AddRequirementRule $rule1
$myGC = New-CMGlobalConditionExpression -Name "GCExp" -DeviceType Windows -RootExpression $myRuleExpression

示例 2:添加复杂的全局条件表达式

$ruleProc = Get-CMGlobalCondition -Name "Number of processors" | New-CMRequirementRuleCommonValue -Value1 2 -RuleOperator GreaterEquals
$ruleMem1 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 2048 -RuleOperator GreaterThan
$ruleMem2 = Get-CMGlobalCondition -Name "Total physical memory" | New-CMRequirementRuleCommonValue -Value1 4096 -RuleOperator LessEquals
$ruleCPUSpeed1 = Get-CMGlobalCondition -Name "CPU Speed" | New-CMRequirementRuleCommonValue -Value1 5120 -RuleOperator LessEquals
$ruleCPUSpeed2 = Get-CMGlobalCondition -Name "CPU Speed" | New-CMRequirementRuleCommonValue -Value1 1024 -RuleOperator GreaterThan
$expressionProc = New-CMRequirementRuleExpression -AddRequirementRule $ruleProc
$expressionMem = New-CMRequirementRuleExpression -AddRequirementRule $ruleMem1, $ruleMem2 -ClauseOperator And
$expressionCPU = New-CMRequirementRuleExpression -AddRequirementRule $ruleCPUSpeed1, $ruleCPUSpeed2 -ClauseOperator And
$myRuleExpression = New-CMRequirementRuleExpression -RootExpression $expressionProc -AddExpression $expressionMem,$expressionCPU -ClauseOperator And -AddAsGroup -GroupOperator Or
$myGC = New-CMGlobalConditionExpression -Name "GCExp" -DeviceType Windows -RootExpression $myRuleExpression

参数

-AddAsGroup

添加此参数以将表达式添加为组。 使用 AddExpression 参数指定多个表达式。 使用 GroupOperator 参数指定连接器。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AddExpression

指定要添加到新表达式的一个或多个表达式对象。 使用此同一 cmdlet 创建这些对象。 使用 RootExpression 参数指定第一个表达式。

类型:ExpressionBase[]
别名:AddExpressions
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-AddRequirementRule

-ClauseOperator

指定要用作多个表达式之间的连接器的逻辑运算符。

类型:ConnectOperator
接受的值:And, Or
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-DisableWildcardHandling

此参数将通配符视为文本字符值。 不能将其与 ForceWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ForceWildcardHandling

此参数处理通配符,并可能导致意外行为, (不建议) 。 不能将其与 DisableWildcardHandling 组合使用。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-GroupOperator

指定要用作组之间的连接器的逻辑运算符。 将此参数与 AddAsGroup 参数一起使用。

类型:ConnectOperator
接受的值:And, Or
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-RootExpression

使用此参数指定第一个表达式。 使用此同一 cmdlet 创建表达式对象。 若要添加多个表达式,请使用 AddExpression 参数。

类型:ExpressionBase
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

输入

None

输出

System.Object