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>]

説明

既存のタスク シーケンスにグループまたはステップを追加するには、このコマンドレットを使用します。 タスク シーケンスの手順の詳細については、「タスク シーケンスの 手順」を参照してください

タスク シーケンスにステップをプログラムで追加する場合は、ステップのインデックスの順序を理解することが重要です。 インデックスを視覚化するために、この記事では次のタスク シーケンス例を使用します。

  • step1
  • step2
  • step3
  • step4
  • group5
    • step5.1
    • step5.2
    • step5.3
    • group5.4
      • step5.4.1
    • step5.5
  • step6

タスク シーケンス エディターを 使用して ステップを追加すると、現在選択されている手順の後に新しい手順が追加されます。 このコマンドレットも同様に動作します。指定したインデックスの後にステップが追加されます。 InsertStepStartIndex パラメーターを使用して、ステップ インデックスを指定します。

このコマンドレットは、グループではなく、タスク シーケンスのメイン レベルにのみ手順を追加できます。 グループにステップを追加するには 、Set-CMTaskSequenceGroup を使用します。 たとえば、サンプル タスク シーケンスを使用して 、InsertStepStartIndexパラメーター値でAdd-CMTaskSequenceStepを使用する場合、コマンドレットは group5 の後、および 5 step6**** の前に新しい手順を追加します。

注意

Configuration Manager サイト ドライブから Configuration Manager コマンドレットを実行します PS XYZ:\> 。 詳細については 、「Getting started」を参照してください

例 1: 2 つの PowerShell スクリプトを実行するカスタム タスク シーケンスを作成する

この例では、最初の 2 つのコマンドで New-CMTaskSequenceStepRunPowerShellScript コマンドレットを使用して 、Powershell スクリプトの実行手順のステップ オブジェクトを作成します。 3 番目のコマンドは、スクリプトの実行という名前の新しいカスタム タスク シーケンスを作成します。 4 番目のコマンドは、新しいタスク シーケンス オブジェクトをパイプライン経由で Add-CMTaskSequenceStepに渡し、2 つの手順を追加します。

$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: 順序が異なる 2 つの PowerShell スクリプトを実行するカスタム タスク シーケンスを作成する

この例は例 1 と似ていますが 、Add-CMTaskSequenceStep コマンドレットの 2 つのインスタンスを使用しています。

$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パラメーターも使用しないので、既定では index を使用します 0 。 したがって、コマンドレットは、最初の手順の前 に 2 番目の 手順を追加します。

例 3: 特定のインデックスにステップを追加する

この例では、 まず New-CMTSStepSetVariable コマンドレットを使用して、[タスク シーケンス変数の設定] ステップのステップ オブジェクトを作成 します。 次に、インデックス 2 の手順の後に ts1 という 名前のタスク シーケンスにこの手順を 追加します。 Description のタスク シーケンスの例を使用して、このコマンドはstep2と step3 の間にnewStep を追加します

$step = New-CMTSStepSetVariable -name "newStep" -TaskSequenceVariable "testVar" -TaskSequenceVariableValue "testValue"
Add-CMTaskSequenceStep -TaskSequenceName "ts1" -Step $step -InsertStepStartIndex 2

例 4: タスク シーケンスをコピーし、新しい手順を追加する

次の使用例は、既存のタスク シーケンスをコピーし、名前を変更します。 次の一連の手順では、セキュリティ スコープを再構成します。 次に、パッケージの ID を取得し、別の手順から条件オブジェクトをコピーします。 最後のグループでは、パッケージオブジェクトと条件オブジェクト**** を使用する新しいコマンド ライン実行ステップを作成します。 次に、インデックス 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

コマンドレットを実行する前に確認メッセージを表示します。

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

コマンドレットがステップを追加するタスク シーケンス オブジェクトを指定します。 このオブジェクトを取得するには 、Get-CMTaskSequenceコマンドレット 、Copy-CMTaskSequence コマンドレットまたは New-CMTaskSequence コマンドレットを使用します。

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

-InsertStepStartIndex

タスク シーケンス インデックスの整数値を指定します。 このコマンドレットは、この指定したインデックスの後に新しい手順を追加します。 たとえば、Description のサンプル タスク シーケンスを使用して、値を指定すると、コマンドレットは step4 の後 4 に新しい手順を追加します

値を指定すると、タスク シーケンスの上部に新しい手順 0 が追加されます。 このパラメーターを指定しない場合、この動作は既定です。 たとえば、コマンドレットは手順 1 の前に新しい_手順を_追加します

最大値はありません。 最後のステップのインデックスより大きい値を指定すると、タスク シーケンスの最後に新しい手順が追加されます。 たとえば、値を指定すると、手順 10 6の後に新しい手順が追加されます。

Type:UInt32
Aliases:InsertStepsStartIndex
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Step

タスク シーケンスに追加する 1 つ以上のステップ オブジェクトを指定します。 このオブジェクトを取得するには **、New-CMTSStep コマンドレットのいずれかを * **使用します。 たとえば 、Get-CMTSStepApplyDataImageです。

Type:IResultObject[]
Aliases:Steps
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-TaskSequenceId

コマンドレットがステップを追加するタスク シーケンスの ID を指定します。 この ID は、たとえば、タスク シーケンス パッケージ ID です XYZ00861

Type:String
Aliases:Id, TaskSequencePackageId
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-TaskSequenceName

コマンドレットがステップを追加するタスク シーケンスの名前を指定します。

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットが実行されるとどうなるかを示します。 コマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

入力

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

出力

System.Object

メモ

[関連リンク] セクションに記載されていない場合は 、Get-CMTSStep * _、 _ New-CMTSStep * _、 _ Remove-CMTSStep * _、 および * _ Set-CMTSStepコマンドレットを使用できます。 例:

各タスク シーケンス ステップに対して、これらのコマンドレットのセットがあります。