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 會在群組 tb5step6之前新增新的步驟。

注意

從 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 新增步驟的任務順序物件。 若要取得此物件,請使用 CMTaskSequenceCopy CMTaskSequenceCMTaskSequence Cmdlet。

Type:IResultObject
Aliases:TaskSequence
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-InsertStepStartIndex

指定任務序列索引的整數值。 Cmdlet 會在此指定的索引之後加入新的步驟。 例如,如果您指定值,指令程式會在 [ 描述] 中使用範例任務順序 4step4後,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。 例如:

每個任務順序步驟都有一組這類 Cmdlet。