Add-CMTaskSequenceStep

Fügen Sie einer Tasksequenz einen Schritt oder eine Gruppe hinzu.

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

Beschreibung

Verwenden Sie dieses Cmdlet, um einer vorhandenen Tasksequenz eine Gruppe oder einen Schritt hinzuzufügen. Weitere Informationen zu Tasksequenzschritten finden Sie unter Tasksequenzschritte.

Beim programmgesteuerten Hinzufügen von Schritten zu einer Tasksequenz ist es wichtig, die Indexreihenfolge der Schritte zu verstehen. Um den Index zu visualisieren, verwendet dieser Artikel die folgende Beispieltasksequenz:

  • Schritt 1
  • Schritt 2
  • Schritt 3
  • schritt4
  • Group5
    • Schritt 5.1
    • step5.2
    • Schritt 5.3
    • group5.4
      • step5.4.1
    • step5.5
  • schritt6

Wenn Sie den Tasksequenz-Editor verwenden, um einen Schritt hinzuzufügen, wird der neue Schritt nach dem aktuell ausgewählten Schritt hinzugefügt. Dieses Cmdlet funktioniert ähnlich und fügt den Schritt nach dem angegebenen Index hinzu. Sie verwenden den InsertStepStartIndex-Parameter, um den Schrittindex anzugeben.

Dieses Cmdlet kann nur Schritte zur Hauptebene der Tasksequenz hinzufügen, nicht in Gruppen. Zum Hinzufügen von Schritten in Gruppen verwenden Sie "Set-CMTaskSequenceGroup". Wenn Sie beispielsweise mit der Beispieltasksequenz Add-CMTaskSequenceStep mit dem InsertStepStartIndex-Parameterwert 5 verwenden, fügt das Cmdlet den neuen Schritt nach Gruppe5 und vor Schritt6hinzu.

Hinweis

Führen Sie Configuration Manager-Cmdlets beispielsweise vom Configuration Manager-Standortlaufwerk PS XYZ:\> aus. Weitere Informationen finden Sie unter "Erste Schritte".

Beispiele

Beispiel 1: Erstellen einer benutzerdefinierten Tasksequenz, die zwei PowerShell-Skripts ausführt

In diesem Beispiel verwenden die ersten beiden Befehle das Cmdlet "New-CMTaskSequenceStepRunPowerShellScript", um Schrittobjekte für den Schritt "PowerShell-Skript ausführen" zu erstellen. Mit dem dritten Befehl wird eine neue benutzerdefinierte Tasksequenz namens Run scriptserstellt. Der vierte Befehl übergibt das neue Tasksequenzobjekt über die Pipeline an Add-CMTaskSequenceStep, wodurch die beiden Schritte hinzugefügt werden.

$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)

Die resultierende Tasksequenz sieht wie die folgende Liste aus:

  • Ausführen von Skript 1
  • Ausführen von Skript 2

Die Schritte werden aufgrund ihrer Reihenfolge im Parameter "Step" auf diese Weise sortiert.

Beispiel 2: Erstellen einer benutzerdefinierten Tasksequenz, die zwei PowerShell-Skripts mit einer anderen Reihenfolge ausführt

Dieses Beispiel ähnelt Beispiel 1, mit der Ausnahme, dass zwei Instanzen des Cmdlets "Add-CMTaskSequenceStep" verwendet werden.

$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

Die resultierende Tasksequenz sieht wie die folgende Liste aus:

  • Ausführen von Skript 2
  • Ausführen von Skript 1

Aufgrund der Reihenfolge der einzelnen Instanzen von Add-CMTaskSequenceStep und der Verwendung des InsertStepStartIndex-Parameters wird standardmäßig der Index 0 verwendet. Das Cmdlet fügt also den zweiten Schritt vor dem ersten Schritt hinzu.

Beispiel 3: Hinzufügen eines Schritts zu einem bestimmten Index

In diesem Beispiel wird zunächst das Cmdlet "New-CMTSStepSetVariable" verwendet, um ein Schrittobjekt für den Schritt "Tasksequenzvariable festlegen" zu erstellen. Anschließend wird dieser Schritt der Tasksequenz namens ts1 nach dem Schritt bei Index 2hinzugefügt. Mithilfe der Beispieltasksequenz in der Beschreibungfügt dieser Befehl "newStep" zwischen Schritt2 und Schritt 3hinzu.

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

Beispiel 4: Kopieren einer Tasksequenz und Hinzufügen eines neuen Schritts

In diesem Beispiel wird eine vorhandene Tasksequenz kopiert und dann umbenannt. Mit den nächsten Schritten wird der Sicherheitsbereich neu konfiguriert. Anschließend wird die ID für ein Paket abgerufen und ein Bedingungsobjekt aus einem anderen Schritt kopiert. In der letzten Gruppe wird ein neuer Befehlszeilenschritt "Ausführen" erstellt, in dem die Paket- und Bedingungsobjekte verwendet werden. Anschließend wird der neue Schritt der neuen Tasksequenz bei Index 11 hinzugefügt.

$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

Parameter

-Confirm

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

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

-DisableWildcardHandling

Dieser Parameter behandelt Platzhalterzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandlingkombinieren.

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

-ForceWildcardHandling

Dieser Parameter verarbeitet Platzhalterzeichen und kann zu unerwartetem Verhalten führen (nicht empfohlen). Sie können es nicht mit DisableWildcardHandlingkombinieren.

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

-InputObject

Geben Sie ein Tasksequenzobjekt an, dem das Cmdlet den Schritt hinzufügt. Verwenden Sie zum Abrufen dieses Objekts die Cmdlets "Get-CMTaskSequence", "Copy-CMTaskSequence"oder "New-CMTaskSequence".

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

-InsertStepStartIndex

Geben Sie einen ganzzahligen Wert für den Tasksequenzindex an. Das Cmdlet fügt den neuen Schritt nach diesem angegebenen Index hinzu. Wenn Sie beispielsweise die Beispieltasksequenz in der Beschreibungverwenden, fügt das Cmdlet den 4 neuen Schritt nach Schritt4hinzu, wenn Sie einen Wert von angeben.

Wenn Sie einen Wert von 0 angeben, fügt das Cmdlet den neuen Schritt oben in der Tasksequenz hinzu. Dieses Verhalten ist die Standardeinstellung, wenn Sie diesen Parameter nicht angeben. Beispielsweise fügt das Cmdlet den neuen Schritt vor Schritt1hinzu.

Es gibt keinen Maximalwert. Wenn Sie einen Wert angeben, der größer als der Index des letzten Schritts ist, fügt das Cmdlet den neuen Schritt am Ende der Tasksequenz hinzu. Wenn Sie beispielsweise einen Wert von 10 angeben, fügt das Cmdlet den neuen Schritt nach Schritt6hinzu.

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

-Step

Geben Sie ein oder mehrere Schrittobjekte an, die der Tasksequenz hinzugefügt werden sollen. Um dieses Objekt abzurufen, verwenden Sie eines der ** * New-CMTSStep-Cmdlets.** Beispiel: Get-CMTSStepApplyDataImage.

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

-TaskSequenceId

Geben Sie die ID einer Tasksequenz an, der das Cmdlet den Schritt hinzufügt. Diese ID ist die Tasksequenz-Paket-ID, XYZ00861 z. B. .

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

-TaskSequenceName

Geben Sie den Namen einer Tasksequenz an, der das Cmdlet den Schritt hinzufügt.

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

-WhatIf

Zeigt, was passieren würde, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

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

Eingaben

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Ausgaben

System.Object

Hinweise

Sie sind zwar nicht im Abschnitt "Verwandte Links" aufgeführt, können aber die Cmdlets **"Get-CMTSStep * ", " New-CMTSStep * ", " Remove-CMTSStep * " und " Set-CMTSStep" * ** verwenden. Beispiel:

Für jeden Tasksequenzschritt gibt es eine Reihe dieser Cmdlets.