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
此示例演示如何对现有成员执行编程排序。 如果业务流程组的成员身份未更改,它将使用以下常规过程:
- 使用现有成员资源 ID。
- 获取有关每个资源的详细信息。
- 根据该信息对列表进行排序。
- 返回新排序列表的资源 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-CMDevice 或 Get-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 参数设置为 Number
或 Percentage
时,请使用此参数。
类型: | 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 类的对象。