New-CMTSRule

创建要添加到 “设置动态变量” 任务序列步骤的规则。

语法

New-CMTSRule
   -Variable <Hashtable>
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSRule
   [-AssetTag <String>]
   [-MacAddress <String>]
   [-SerialNumber <String>]
   [-Uuid <String>]
   -Variable <Hashtable>
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSRule
   [-DefaultGateway <String>]
   -Variable <Hashtable>
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSRule
   [-Make <String>]
   [-Model <String>]
   -Variable <Hashtable>
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-CMTSRule
   [-ReferencedVariableName <String>]
   [-ReferencedVariableOperator <VariableOperatorType>]
   [-ReferencedVariableValue <String>]
   -Variable <Hashtable>
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

使用此 cmdlet 创建添加到 “设置动态变量” 任务序列步骤的规则对象。 若要添加规则,请使用 New-CMTSStepSetDynamicVariableSet-CMTSStepSetDynamicVariable cmdlet。 当任务序列运行此步骤时,它会按顺序评估动态规则和变量。 在评估特定设备上的规则时,它可以基于这些规则设置任务序列变量。

有四种类型的规则:

  • 计算机:评估硬件资产标记、UUID、序列号或 MAC 地址的值。
  • 位置:评估默认网络网关的值。
  • Make 和 Model:评估计算机的制造和型号的值。
  • 任务序列变量:添加要计算的任务序列变量、条件和值。

有关详细信息,请参阅 动态规则和变量

注意

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

示例

示例 1:在 Windows PE 中设置下载目标

此示例创建以下规则:

IF _SMSTSInWinPE equals "TRUE" THEN SET OSDDownloadDestinationLocationType = "TSCache"

然后,它将此规则添加到任务序列中此步骤的现有实例。

$tsrule = New-CMTSRule -Variable @{'OSDDownloadDestinationLocationType' = 'TSCache'} -ReferencedVariableName "_SMSTSInWinPE" -ReferencedVariableOperator equals -ReferencedVariableValue TRUE

$tsname = "Default IPU"
$tsstep = "Set Dynamic Variables"

Set-CMTSStepSetDynamicVariable -TaskSequenceName $tsname -StepName $tsstep -AddRule $tsrule

参数

-AssetTag

计算机规则类型指定资产标记。 最大值为 255 个字符。

例如,如果将此值设置为 123456,则会添加以下规则: IF Asset tag equals "123456" THEN

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

-Confirm

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

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

-DefaultGateway

“位置”规则类型指定“默认网关”。

例如,如果将此值设置为 192.168.10.1,则会添加以下规则: IF Default gateway equals "192.168.10.1" THEN

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

-DisableWildcardHandling

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

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

-ForceWildcardHandling

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

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

-MacAddress

指定计算机规则类型的 MAC 地址

例如,如果将此值设置为 00:11:22:33:44:55,则会添加以下规则: IF MAC address equals "00:11:22:33:44:55" THEN

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

-Make

“制造”和“模型”规则类型指定“制造”。 若要设置其他值,请使用 Model 参数。 当两个值都为 true 时,规则的计算结果为 true。

可以使用通配符:

  • *:多个字符
  • ?:单个字符

例如,如果将此值设置为 Surface ,将 模型 设置为 *,则会添加以下规则: IF Make equals "Surface" AND Model equals "*" THEN

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

-Model

“制造” 和“模型”规则类型指定 “模型 ”。 若要设置其他值,请使用 Make 参数。 当两个值都为 true 时,规则的计算结果为 true。

可以使用通配符:

  • *:多个字符
  • ?:单个字符

例如,如果将此值设置为 * ,并将 Make 设置为 Surface,则会添加以下规则: IF Make equals "Surface" AND Model equals "*" THEN

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

-ReferencedVariableName

为任务序列 变量 规则类型指定 变量 。 它还要求设置 ReferencedVariableOperatorReferencedVariableValue 参数。

此变量名称可以是内置任务序列变量,也可以是创建的自定义变量。 有关详细信息,请参阅 如何在 Configuration Manager 中使用任务序列变量

例如,如果设置以下值:

  • ReferencedVariableNameOSDRegisteredOrgName
  • ReferencedVariableOperatorEquals
  • ReferencedVariableValueContoso

然后,它添加以下规则: IF OSDRegisteredOrgName equals "Contoso" THEN

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

-ReferencedVariableOperator

任务序列变量规则类型指定条件。 它还要求设置 ReferencedVariableNameReferencedVariableValue 参数。 有关可用运算符,请参阅此参数的接受值列表。

例如,如果设置以下值:

  • ReferencedVariableNameOSDRegisteredOrgName
  • ReferencedVariableOperatorEquals
  • ReferencedVariableValueContoso

然后,它添加以下规则: IF OSDRegisteredOrgName equals "Contoso" THEN

类型:VariableOperatorType
接受的值:Exists, NotExists, Equals, NotEquals, Greater, GreaterEqual, Less, LessEqual, Like, NotLike
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ReferencedVariableValue

任务序列变量规则类型指定。 它还要求设置 ReferencedVariableNameReferencedVariableOperator 参数。

例如,如果设置以下值:

  • ReferencedVariableNameOSDRegisteredOrgName
  • ReferencedVariableOperatorEquals
  • ReferencedVariableValueContoso

然后,它添加以下规则: IF OSDRegisteredOrgName equals "Contoso" THEN

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

-SerialNumber

计算机规则类型指定序列号

例如,如果将此值设置为 123456,则会添加以下规则: IF Asset tag equals "123456" THEN

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

-Uuid

计算机规则类型指定 UUID

例如,如果将此值设置为 de5ba380-f692-45e0-bbd3-0e40543b549e,则会添加以下规则: IF UUID equals "de5ba380-f692-45e0-bbd3-0e40543b549e" THEN

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

-Variable

指定规则计算结果为 true 时步骤应设置的现有或自定义任务序列变量和关联值。

例如,如果将此值设置为 @{'OSDDownloadDestinationLocationType' = 'TSCache'},则会在规则的 后面 THEN 添加以下变量: SET OSDDownloadDestinationLocationType = "TSCache"

若要在同一哈希表中指定多个变量,请使用分号 (;) 分隔符。 例如:@{'OSDRegisteredUserName' = 'Contoso';'OSDRegisteredOrgName' = 'Contoso'}

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

-WhatIf

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

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

输入

None

输出

IResultObject