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 パラメーター値5
で Add-CMTaskSequenceStep を使用する場合、コマンドレットは group5 の後と step6 の前に新しいステップを追加します。
注:
PS XYZ:\>
など、Configuration Manager サイト ドライブから Configuration Manager コマンドレットを実行します。 詳細については、「作業の 開始」を参照してください。
例
例 1: 2 つの PowerShell スクリプトを実行するカスタム タスク シーケンスを作成する
この例では、最初の 2 つのコマンドで New-CMTaskSequenceStepRunPowerShellScript コマンドレットを使用して、 Powershell スクリプトの実行 ステップのステップ オブジェクトを作成します。 3 番目のコマンドは、 Run scripts という名前の新しいカスタム タスク シーケンスを作成します。 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 パラメーターも使用されないため、既定ではインデックス 0
が使用されます。 そのため、コマンドレットは最初のステップの 前に 2 番目のステップを追加します。
例 3: 特定のインデックスにステップを追加する
この例では、最初に New-CMTSStepSetVariable コマンドレットを使用して、[ タスク シーケンス変数の設定 ] ステップのステップ オブジェクトを作成します。 次に、インデックス 2 のステップの後に ts1 という名前のタスク シーケンスにこのステップを追加します。 説明のタスク シーケンスの例を使用して、このコマンドは 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
コマンドレットを実行する前に確認メッセージを表示します。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-DisableWildcardHandling
このパラメーターは、ワイルドカード文字をリテラル文字の値として扱います。 ForceWildcardHandling と組み合わせることはできません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ForceWildcardHandling
このパラメーターはワイルドカード文字を処理し、予期しない動作が発生する可能性があります (推奨されません)。 DisableWildcardHandling と組み合わせることはできません。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
コマンドレットがステップを追加するタスク シーケンス オブジェクトを指定します。 このオブジェクトを取得するには、 Get-CMTaskSequence、 Copy-CMTaskSequence、または New-CMTaskSequence コマンドレットを 使用します。
型: | IResultObject |
Aliases: | TaskSequence |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-InsertStepStartIndex
タスク シーケンス インデックスの整数値を指定します。 コマンドレットは、この指定したインデックスの後に新しいステップを追加します。 たとえば、 Description のタスク シーケンスの例を使用して、 4
の値を指定した場合、コマンドレットは 手順 4 の後に新しいステップを追加します。
0
の値を指定すると、コマンドレットはタスク シーケンスの先頭に新しいステップを追加します。 このパラメーターを指定しない場合、この動作は既定です。 たとえば、コマンドレットは手順 1 の前に新しいステップを追加します。
最大値はありません。 最後のステップのインデックスより大きい値を指定すると、コマンドレットはタスク シーケンスの最後に新しいステップを追加します。 たとえば、 10
の値を指定すると、コマンドレットは step6 の後に新しいステップを追加します。
型: | UInt32 |
Aliases: | InsertStepsStartIndex |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Step
タスク シーケンスに追加する 1 つ以上のステップ オブジェクトを指定します。 このオブジェクトを取得するには、 New-CMTSStep* コマンドレットのいずれかを使用します。 たとえば、 Get-CMTSStepApplyDataImage です。
型: | IResultObject[] |
Aliases: | Steps |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-TaskSequenceId
コマンドレットがステップを追加するタスク シーケンスの ID を指定します。 この ID は、タスク シーケンス パッケージ ID です (たとえば、 XYZ00861
)。
型: | String |
Aliases: | Id, TaskSequencePackageId |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-TaskSequenceName
コマンドレットがステップを追加するタスク シーケンスの名前を指定します。
型: | String |
配置: | Named |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットが実行されるとどうなるかを示します。 コマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
出力
System.Object
メモ
関連リンク セクションには記載されていませんが、 Get-CMTSStep*、 New-CMTSStep*、 Remove-CMTSStep*、 Set-CMTSStep* コマンドレットを 使用できます。 例:
- Get-CMTSStepApplyDataImage
- New-CMTSStepApplyDataImage
- Remove-CMTSStepApplyDataImage
- Set-CMTSStepApplyDataImage
タスク シーケンス ステップごとに、これらのコマンドレットのセットがあります。