New-CMTSStepConditionIfStatement

为任务序列步骤创建 if 语句 条件。

语法

New-CMTSStepConditionIfStatement
   [-Condition <IResultObject[]>]
   -StatementType <ConditionStatementType>
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

使用此 cmdlet 为任务序列步骤创建 if 语句 条件对象。 然后,将 New-CMTSStep*Set-CMTSStep* cmdlet 之一与 ConditionAddCondition 参数结合使用 。 例如 ,Set-CMTSStepApplyDataImage

有关详细信息,请参阅 使用任务序列编辑器:条件

注意

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

示例

示例 1

此示例首先使用 New-CMTSStepConditionFileNew-CMTSStepConditionQueryWMI cmdlet 创建子条件对象。 它将这两个对象传递给 New-CMTSStepConditionIfStatement cmdlet 并保存该条件对象。

然后,它使用 Set-CMTSStepSetDynamicVariable cmdlet 将此条件对象添加到默认 OS 部署任务序列的“设置动态变量”步骤。

$file = "C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin\en-US\AdminUI.PS.dll-Help.xml"
$datetime = Get-Date ("August 2, 2021")
$conditionFile = New-CMTSStepConditionFile -FilePath $file -FileTimestamp $datetime -FileDateTimeOperator Greater

$model = "Latitude E7470"
$wmiQuery = "Select * From Win32_ComputerSystem Where Model = `"$Model`""
$conditionQuery = New-CMTSStepConditionQueryWMI -Namespace "root\cimv2" -Query $wmiQuery

$condition = New-CMTSStepConditionIfStatement -StatementType All -Condition $conditionFile,$conditionQuery

$tsNameOsd = "Default OS deployment"
$tsStepNameSetDynVar = "Set Dynamic Variables"

Set-CMTSStepSetDynamicVariable -TaskSequenceName $tsNameOsd -StepName $tsStepNameSetDynVar -AddCondition $condition

If  All  the conditions are true:
    File  C:\Program Files (x86)\Microsoft Endpoint Manager\AdminConsole\bin\en-US\AdminUI.PS.dll-Help.xml exists  and  timestamp greater than "8/1/2021 16:00:00"
    WMI Query  Select * From Win32_ComputerSystem Where Model = "Latitude E7470"

参数

-Condition

指定要包含在此 if 语句 块中的一个或多个条件对象。 若要获取这些嵌套对象,请使用 New-CMTSStepCondition* cmdlet 之一。 例如 ,New-CMTSStepConditionFile

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

-Confirm

提示你在运行 cmdlet 之前进行确认。

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

-DisableWildcardHandling

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

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

-ForceWildcardHandling

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

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

-StatementType

指定要创建的 if 语句 的类型。 可以使用此条件执行三种类型的检查:

  • 如果 All 条件为 true
  • 如果 Any 条件为 true
  • 如果 None 条件为 true
类型:ConditionStatementType
别名:Operator
接受的值:All, Any, None
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-WhatIf

显示在 cmdlet 运行时发生的情况。 cmdlet 不会运行。

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

输入

None

输出

IResultObject

备注

有关此返回对象及其属性的详细信息,请参阅 SMS_TaskSequence_ConditionOperator服务器 WMI 类