次の方法で共有


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 パラメーター値5Add-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-CMTaskSequenceCopy-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* コマンドレットを 使用できます。 例:

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