Set-CMOrchestrationGroup

配置业务流程组。

语法

Set-CMOrchestrationGroup
   [-InputObject] <IResultObject>
   [-NewName <String>]
   [-Description <String>]
   [-OrchestrationType <OrchestrationTypeValue>]
   [-OrchestrationValue <Int32>]
   [-OrchestrationTimeOutMin <Int32>]
   [-MaxLockTimeOutMin <Int32>]
   [-PreScript <String>]
   [-PreScriptTimeoutSec <Int32>]
   [-PostScript <String>]
   [-PostScriptTimeoutSec <Int32>]
   [-MemberResourceIds <Int32[]>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CMOrchestrationGroup
   [-Id] <Int32>
   [-NewName <String>]
   [-Description <String>]
   [-OrchestrationType <OrchestrationTypeValue>]
   [-OrchestrationValue <Int32>]
   [-OrchestrationTimeOutMin <Int32>]
   [-MaxLockTimeOutMin <Int32>]
   [-PreScript <String>]
   [-PreScriptTimeoutSec <Int32>]
   [-PostScript <String>]
   [-PostScriptTimeoutSec <Int32>]
   [-MemberResourceIds <Int32[]>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-CMOrchestrationGroup
   [-Name] <String>
   [-NewName <String>]
   [-Description <String>]
   [-OrchestrationType <OrchestrationTypeValue>]
   [-OrchestrationValue <Int32>]
   [-OrchestrationTimeOutMin <Int32>]
   [-MaxLockTimeOutMin <Int32>]
   [-PreScript <String>]
   [-PreScriptTimeoutSec <Int32>]
   [-PostScript <String>]
   [-PostScriptTimeoutSec <Int32>]
   [-MemberResourceIds <Int32[]>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

说明

使用此 cmdlet 配置业务流程组。

使用业务流程组可以更好地控制软件更新到设备的部署。 可能需要仔细管理特定工作负载的更新,或自动执行两者之间的行为。 有关详细信息,请参阅 在 Configuration Manager 中创建和使用业务流程组

注意

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

示例

示例 1:更改类型并指定序列

此示例首先使用 Get-CMOrchestrationGroup cmdlet 获取名为 IT 服务器的业务流程组的对象。 它将此对象存储在 og 变量中。

下一个命令定义名为 devices 的数组。 它循环访问 IT 服务器 业务流程组 ($og.MOGMembers) 的每个成员,并将成员的 ID 传递给 Get-CMDevice cmdlet。 返回的设备对象追加到 devices 数组。

下一个命令按设备名称对数组进行排序,并将设备资源 ID 返回到 sortedIDs 变量中。

然后,它将 cmdlet 参数 展开parameters 变量中。 不需要对参数进行 splat,它只是便于读取如此长的命令行的参数。

最后一个命令使用定义的序列顺序配置指定的业务流程组。 它使用 MemberResourceIds 参数来设置序列,而不是添加或删除成员。

$og = Get-CMOrchestrationGroup -Name "IT servers"

$devices = @()
foreach ( $id in $og.MOGMembers ) {
  $devices += Get-CMDevice -Id $id -Fast
}

$sortedIDs = ( $devices | Sort-Object -Property Name | Select-Object ResourceId ).ResourceId

$parameters = @{
  InputObject = $og
  Description = "Change type and sequence"
  OrchestrationType = "Sequence"
  MemberResourceIds = $sortedIDs
}

Set-CMOrchestrationGroup @parameters

此示例演示如何对现有成员执行编程排序。 如果业务流程组的成员身份未更改,它将使用以下常规过程:

  1. 使用现有成员资源 ID。
  2. 获取有关每个资源的详细信息。
  3. 根据该信息对列表进行排序。
  4. 返回新排序列表的资源 ID。

此示例使用 Get-CMDevice 获取详细信息,但可以将它替换为使用设备资源 ID 作为输入的任何 cmdlet。 还可以将排序机制替换为另一个函数。

示例 2:从文件获取脚本内容

此示例使用内置的 Get-Content cmdlet 从本地文件读取脚本文本。 它将脚本文本存储在 postScript 变量中。 第二个命令使用新的后脚本配置业务流程组。

$postScript - Get-Content -Path "D:\Scripts\OG\Post1.ps1"
Set-CMOrchestrationGroup -InputObject $og -PostScript $postScript

参数

-Confirm

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

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

-Description

为业务流程组指定可选说明以帮助识别它。

类型: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

-Id

指定要配置的业务流程组的 ID。 此值是 MOGID 属性,它是一个整数。 例如,16777217

类型:Int32
别名:MOGID
Position:0
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-InputObject

指定要配置的业务流程组的对象。 若要获取此对象,请使用 Get-CMOrchestrationGroup cmdlet。

类型:IResultObject
别名:OrchestrationGroup
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-MaxLockTimeOutMin

指定业务流程组成员超时的整数值(以分钟为单位)。 此值是组中单个设备安装更新的时间限制。

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

-MemberResourceIds

指定要添加为此业务流程组成员的设备的资源 ID 数组。 资源 ID 是整数,例如 16777220。 它是设备或资源对象上的 ResourceId 属性。 若要获取设备对象,请使用 Get-CMDeviceGet-CMResource cmdlet。

OrchestrationType 参数设置为 Sequence时,使用此参数确定顺序。

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

-Name

指定要配置的业务流程组的名称。

类型:String
别名:OrchestrationGroupName
Position:0
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-NewName

为此业务流程组指定新名称。 使用此参数重命名业务流程组。

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

-OrchestrationTimeOutMin

指定业务流程组超时的整数值(以分钟为单位)。 此值是所有组成员安装更新的时间限制。

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

-OrchestrationType

为业务流程组的类型指定以下值之一:

  • Number:允许同时更新多个设备。 使用此设置始终限制为特定数量的设备,无论业务流程组的总体大小如何。 若要指定设备数,请使用 OrchestrationValue 参数。

  • Percentage:允许一定比例的设备同时更新。 使用此设置可以灵活调整业务流程组的大小。 若要指定百分比,请使用 OrchestrationValue 参数。

  • Sequence:显式定义设备运行软件更新部署的顺序。 顺序由 MemberResourceIds 参数中的设备资源 ID 的排序决定。

类型:OrchestrationTypeValue
接受的值:Number, Percentage, Sequence
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-OrchestrationValue

为要同时更新的设备数或百分比指定一个整数。 将 OrchestrationType 参数设置为 NumberPercentage时,请使用此参数。

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

-PostScript

根据需要,指定要在部署运行和设备重启 在每个设备上运行的 PowerShell 脚本。

此字符串值是脚本本身的文本。 如果文件中有要使用的脚本,请先将其读入变量。 例如,使用内置的 Get-Content cmdlet。

对于成功,脚本应返回 值 0 。 任何非零值都被视为脚本失败。 不能将脚本与参数一起使用。 最大脚本长度为 50,000 个字符。

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

-PostScriptTimeoutSec

指定后脚本在超时前允许运行的时间(秒)的整数值。

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

-PreScript

指定要在部署运行 之前 在每个设备上运行的 PowerShell 脚本。

此字符串值是脚本本身的文本。 如果文件中有要使用的脚本,请先将其读入变量。 例如,使用内置的 Get-Content cmdlet。

对于成功,脚本应返回 值 0 。 任何非零值都被视为脚本失败。 不能将脚本与参数一起使用。 最大脚本长度为 50,000 个字符。

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

-PreScriptTimeoutSec

指定允许运行前脚本在超时之前运行的时间(秒)的整数值。

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

-WhatIf

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

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

输入

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

输出

IResultObject

备注

此 cmdlet 返回 SMS_MachineOrchestrationGroup WMI 类的对象。