Add-CMTaskSequenceStep
將步驟或群組新增至任務順序。
Syntax
Add-CMTaskSequenceStep
[-InsertStepStartIndex <UInt32>]
-Step <IResultObject[]>
-InputObject <IResultObject>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-CMTaskSequenceStep
[-InsertStepStartIndex <UInt32>]
-Step <IResultObject[]>
-TaskSequenceId <String>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-CMTaskSequenceStep
[-InsertStepStartIndex <UInt32>]
-Step <IResultObject[]>
-TaskSequenceName <String>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
使用此 Cmdlet 將群組或步驟新增至現有的任務順序。 如需任務順序步驟的詳細資訊,請參閱 任務順序步驟。
以程式設計方式將步驟新增至任務序列時,請務必瞭解步驟的索引順序。 為了協助形象化索引,本文使用下列範例任務順序:
- 步驟1
- 步驟2
- 列為「
- step4
- 群組 tb5
- 步驟5。1
- 步驟5。2
- 步驟5。3
- 群組5。4
- 步驟5.4。1
- 步驟5。5
- step6
當您使用 任務順序編輯器 來新增步驟時,新的步驟會新增至目前選取的步驟之後。 此 Cmdlet 的運作方式類似,它會在指定的索引後新增步驟。 您可以使用 InsertStepStartIndex 參數來指定步驟索引。
此 Cmdlet 只會將步驟新增至任務順序的主要層級,而不是群組中。 若要在群組中新增步驟,請使用 CMTaskSequenceGroup。 例如,使用範例任務序列時,如果您搭配InsertStepStartIndex參數值使用CMTaskSequenceStep 5
,則 Cmdlet 會在群組 tb5和step6之前新增新的步驟。
注意
從 Configuration Manager 網站磁碟機執行 Configuration Manager Cmdlet,例如 PS XYZ:\>
。 如需詳細資訊,請參閱 快速入門。
範例
範例1:建立執行兩個 PowerShell 腳本的自訂任務順序
在此範例中,前兩個命令會使用 CMTaskSequenceStepRunPowerShellScript Cmdlet 來建立 執行 Powershell 腳本 步驟的步驟物件。 第三個命令會建立名為 Run scripts的新自訂任務順序。 第四個命令會透過管線將新的任務序列物件傳遞至 CMTaskSequenceStep,這會新增兩個步驟。
$step1 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 1" -PackageID $PackageId -ScriptName "script1.ps1" -ExecutionPolicy Bypass
$step2 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 2" -PackageID $PackageId -ScriptName "script2.ps1" -ExecutionPolicy Bypass
$ts = New-CMTaskSequence -Name "Run scripts" -CustomTaskSequence
$ts | Add-CMTaskSequenceStep -Step ($step1, $step2)
產生的任務順序看起來像下列清單:
- 執行腳本1
- 執行腳本2
依照這種方式排序 步驟參數中的步驟 。
範例2:建立以不同循序執行兩個 PowerShell 腳本的自訂任務順序
這個範例與範例1類似,但它使用的是 CMTaskSequenceStep 指令程式 的兩個實例。
$step1 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 1" -PackageID $PackageId -ScriptName "script1.ps1" -ExecutionPolicy Bypass
$step2 = New-CMTaskSequenceStepRunPowerShellScript -Name "Run script 2" -PackageID $PackageId -ScriptName "script2.ps1" -ExecutionPolicy Bypass
$ts = New-CMTaskSequence -Name "Run scripts" -CustomTaskSequence
$ts | Add-CMTaskSequenceStep -Step $step1
$ts | Add-CMTaskSequenceStep -Step $step2
產生的任務順序看起來像下列清單:
- 執行腳本2
- 執行腳本1
由於每個 CMTaskSequenceStep 實例的排序方式,並不使用 InsertStepStartIndex 參數,所以預設會使用 index 0
。 所以 Cmdlet 會在第一個步驟 之前 新增第二個步驟。
範例3:在特定索引上新增步驟
這個範例會先使用 CMTSStepSetVariable 指令程式 ,為 設定任務順序變數 步驟建立 step 物件。 然後,它會在索引2的步驟之後,將此步驟加入名為ts1的任務順序。 使用說明中的範例任務順序,此命令會在步驟 2和列為「 之間新增newStep 。
$step = New-CMTSStepSetVariable -name "newStep" -TaskSequenceVariable "testVar" -TaskSequenceVariableValue "testValue"
Add-CMTaskSequenceStep -TaskSequenceName "ts1" -Step $step -InsertStepStartIndex 2
範例4:複製任務順序並新增步驟
本範例會複製現有的任務順序,然後重新命名該順序。 下一組步驟會重新設定安全性範圍。 然後,它會取得套件的識別碼,並從另一個步驟複製 condition 物件。 在最後一個群組中,它會建立一個新的 執行命令列 步驟,使用 package 和 condition 物件。 然後,它會將新的步驟加入至索引11的新任務順序。
$ts = Copy-CMTaskSequence -Name "Deploy Windows 10 (v1)"
$ts | Set-CMTaskSequence -NewName "Deploy Windows 10 (v2)"
$ts | Add-CMObjectSecurityScope -Name "Contoso main" | Out-Null
$ts | Remove-CMObjectSecurityScope -Name "Default" -Force |Out-Null
$pkgId = (Get-CMPackage -Name "Widget tool" -Fast).PackageID
$condition = ($ts | Get-CMTaskSequenceStep -StepName "Restart in Windows PE").Condition.Operands
$step = New-CMTaskSequenceStepRunCommandLine -CommandLine "widget.exe /q" -PackageId $pkgId -Name "Install Widget in Windows PE" -Condition $condition
$ts | Add-CMTaskSequenceStep -Step $step -InsertStepStartIndex 11
參數
-Confirm
執行 Cmdlet 之前提示您確認。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisableWildcardHandling
此參數會將萬用字元視為常值字元值。 您無法將它與 ForceWildcardHandling合併。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ForceWildcardHandling
這個參數會處理萬用字元,而且可能會造成未預期的行為 (不建議) 。 您無法將它與 DisableWildcardHandling合併。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
指定 Cmdlet 新增步驟的任務順序物件。 若要取得此物件,請使用 CMTaskSequence、 Copy CMTaskSequence或 CMTaskSequence Cmdlet。
Type: | IResultObject |
Aliases: | TaskSequence |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InsertStepStartIndex
指定任務序列索引的整數值。 Cmdlet 會在此指定的索引之後加入新的步驟。 例如,如果您指定值,指令程式會在 [ 描述] 中使用範例任務順序 4
。 step4後,Cmdlet 會新增新的步驟。
如果您指定的值 0
,Cmdlet 會在任務順序的頂端加入新的步驟。 如果您未指定此參數,則此行為為預設行為。 例如,Cmdlet 會_在_步驟 1之前新增新的步驟。
沒有最大值。 如果您指定的值大於最後一個步驟的索引,Cmdlet 會在任務順序的結尾加入新的步驟。 例如,如果您指定的值 10
,Cmdlet 會在 step6後新增新的步驟。
Type: | UInt32 |
Aliases: | InsertStepsStartIndex |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TaskSequenceId
指定 Cmdlet 新增步驟的任務順序識別碼。 例如,此識別碼是任務順序套件識別碼 XYZ00861
。
Type: | String |
Aliases: | Id, TaskSequencePackageId |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TaskSequenceName
指定 Cmdlet 新增步驟的任務順序名稱。
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
顯示執行 Cmdlet 時會發生什麼情況。 不會執行 Cmdlet。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-步驟
指定要新增至任務順序的一或多個步驟物件。 若要取得此物件,請使用其中一個**CMTSStep * ** Cmdlet。 例如, CMTSStepApplyDataImage。
Type: | IResultObject[] |
Aliases: | Steps |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
ConfigurationManagement IResultObject
輸出
系統.物件
備註
[相關連結] 區段未列出,您可以使用**CMTSStep * 、 New-CMTSStep * 、 Remove-CMTSStep * _ 及 _ Set-CMTSStep * ** Cmdlet。 例如:
- CMTSStepApplyDataImage
- 新 CMTSStepApplyDataImage
- Remove-CMTSStepApplyDataImage
- CMTSStepApplyDataImage
每個任務順序步驟都有一組這類 Cmdlet。