Add-CMTaskSequenceStep
將步驟或群組新增至工作順序。
語法
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
- 步驟 3
- 步驟 4
- group5
- 步驟 5.1
- 步驟 5.2
- 步驟 5.3
- group5.4
- 步驟 5.4.1
- 步驟 5.5
- 步驟 6
當您使用 工作順序編輯 器來新增步驟時,會在目前選取的步驟之後新增新步驟。 此 Cmdlet 的運作方式類似,它會在指定的索引後面加入步驟。 您可以使用 InsertStepStartIndex 參數來指定步驟索引。
此 Cmdlet 只能將步驟新增至工作順序的主要層級,不能在群組中。 若要在群組中新增步驟,請使用 Set-CMTaskSequenceGroup。 例如,使用範例工作順序時,如果您使用 Add-CMTaskSequenceStep 搭配 InsertStepStartIndex 參數值 5
,Cmdlet 會在 group5 之後和 步驟 6 之前加入新的步驟。
注意事項
從 Configuration Manager 月臺磁碟驅動器執行 Configuration Manager Cmdlet,例如 PS XYZ:\>
。 如需詳細資訊,請 參閱開始使用。
範例
範例 1:建立執行兩個 PowerShell 腳本的自定義工作順序
在此範例中,前兩個命令會使用 New-CMTaskSequenceStepRunPowerShellScript Cmdlet 來建立執行 Powershell 腳本 步驟的步驟物件。 第三個命令會建立名為 Run scripts 的新自定義工作順序。 第四個命令會將新的工作順序物件透過管線傳遞至 Add-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
這些步驟會以這種方式排序,因為步驟是如何在 Step 參數中排序。
範例 2:建立以不同順序執行兩個 PowerShell 腳本的自定義工作順序
此範例類似於範例 1,不同之處在於它會使用 兩個 Add-CMTaskSequenceStep Cmdlet 實例。
$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
由於 Add-CMTaskSequenceStep 的每個實例的排序方式,而且兩者都不使用 InsertStepStartIndex 參數,因此預設會使用索引 0
。 因此,Cmdlet 會在第一個步驟 之前 新增第二個步驟。
範例 3:在特定索引處新增步驟
此範例會先使用 New-CMTSStepSetVariable Cmdlet 來建立 設定工作順序變數 步驟的步驟物件。 然後,它會在索引 2 的步驟之後,將此步驟新增至名為 ts1 的工作順序。 使用描述中的範例工作順序,此命令會在步驟 2 和步驟 3 之間新增 newStep。
$step = New-CMTSStepSetVariable -name "newStep" -TaskSequenceVariable "testVar" -TaskSequenceVariableValue "testValue"
Add-CMTaskSequenceStep -TaskSequenceName "ts1" -Step $step -InsertStepStartIndex 2
範例 4:複製工作順序並新增步驟
此範例會複製現有的工作順序,然後將其重新命名。 下一組步驟會重新設定安全性範圍。 然後,它會取得封裝的標識符,並從另一個步驟複製條件物件。 在最後一個群組中,它會建立使用封裝和條件物件的新執行 命令行 步驟。 然後,它會將新步驟新增至索引 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 之前提示您確認。
類型: | 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 |
-InputObject
指定 Cmdlet 新增步驟的工作順序物件。 若要取得此物件,請使用 Get-CMTaskSequence、 Copy-CMTaskSequence 或 New-CMTaskSequence Cmdlet。
類型: | IResultObject |
別名: | TaskSequence |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-InsertStepStartIndex
指定工作順序索引的整數值。 Cmdlet 會在這個指定的索引後面加入新的步驟。 例如,使用 Description 中的範例工作順序,如果您指定的 4
值,Cmdlet 會在 步驟 4 之後加入新的步驟。
如果您指定的 0
值,Cmdlet 會在工作順序的頂端加入新的步驟。 如果您未指定此參數,則此行為為預設值。 例如,Cmdlet 會在步驟 1之前加入新的步驟。
沒有最大值。 如果您指定的值大於最後一個步驟的索引,Cmdlet 會在工作順序的結尾加入新的步驟。 例如,如果您指定的 10
值,Cmdlet 會在 步驟 6 之後加入新的步驟。
類型: | UInt32 |
別名: | InsertStepsStartIndex |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Step
指定要新增至工作順序的一或多個步驟物件。 若要取得此物件,請使用其中一 個 New-CMTSStep* Cmdlet。 例如 ,Get-CMTSStepApplyDataImage。
類型: | IResultObject[] |
別名: | Steps |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-TaskSequenceId
指定 Cmdlet 新增步驟之工作順序的標識碼。 這個識別元是工作順序套件識別碼,例如 XYZ00861
。
類型: | String |
別名: | Id, TaskSequencePackageId |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-TaskSequenceName
指定 Cmdlet 新增步驟之工作順序的名稱。
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 時會發生什麼情況。 Cmdlet 不會執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
輸出
System.Object
備註
雖然未列在相關連結區段中,但您可以使用 Get-CMTSStep*、 New-CMTSStep*、 Remove-CMTSStep*和 Set-CMTSStep* Cmdlet。 例如:
- Get-CMTSStepApplyDataImage
- New-CMTSStepApplyDataImage
- Remove-CMTSStepApplyDataImage
- Set-CMTSStepApplyDataImage
每個工作順序步驟都有一組這些 Cmdlet。