Freigeben über


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. In diesem Artikel wird die folgende Beispieltasksequenz verwendet, um den Index zu visualisieren:

  • Schritt 1
  • Schritt 2
  • Schritt 3
  • Schritt 4
  • group5
    • Schritt 5.1
    • Schritt 5.2
    • Schritt 5.3
    • group5.4
      • schritt5.4.1
    • Schritt 5.5
  • Schritt 6

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, es 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. Um Schritte in Gruppen hinzuzufügen, verwenden Sie Set-CMTaskSequenceGroup. Wenn Sie beispielsweise bei der Beispieltasksequenz Add-CMTaskSequenceStep mit dem InsertStepStartIndex-Parameterwert5verwenden, fügt das Cmdlet den neuen Schritt nach group5 und vor step6 hinzu.

Hinweis

Führen Sie Configuration Manager-Cmdlets auf dem Configuration Manager-Standortlaufwerk aus, z. B PS XYZ:\>. . 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. Der dritte Befehl erstellt eine neue benutzerdefinierte Tasksequenz namens Skripts ausführen. Der vierte Befehl übergibt das neue Tasksequenzobjekt durch 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 des Skripts 1
  • Skript ausführen 2

Die Schritte werden aufgrund der Reihenfolge im Step-Parameter auf diese Weise sortiert.

Beispiel 2: Erstellen einer benutzerdefinierten Tasksequenz, die zwei PowerShell-Skripts in 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:

  • Skript ausführen 2
  • Ausführen des Skripts 1

Aufgrund der Reihenfolge der einzelnen Instanzen von Add-CMTaskSequenceStep und der InsertStepStartIndex-Parameter wird standardmäßig index 0verwendet. Daher fügt das Cmdlet den zweiten Schritt vor dem ersten Schritt hinzu.

Beispiel 3: Hinzufügen eines Schritts an 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 mit dem Namen ts1 nach dem Schritt am Index 2 hinzugefügt. Mithilfe der Beispieltasksequenz in der Beschreibung fügt dieser Befehl newStep zwischen Schritt 2 und Schritt3 hinzu.

$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 anschließend 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 Schritt Befehlszeile ausführen erstellt, der das Paket und die Bedingungsobjekte verwendet. Anschließend wird der neuen Tasksequenz am Index 11 der neue Schritt 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.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DisableWildcardHandling

Dieser Parameter behandelt Wildcardzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandling kombinieren.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ForceWildcardHandling

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

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren: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 .

Typ:IResultObject
Aliase:TaskSequence
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren: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 Beschreibung verwenden und den Wert 4angeben, fügt das Cmdlet den neuen Schritt nach Schritt 4 hinzu.

Wenn Sie den Wert 0angeben, fügt das Cmdlet den neuen Schritt oben in der Tasksequenz hinzu. Dieses Verhalten ist die Standardeinstellung, wenn Sie diesen Parameter nicht angeben. Das Cmdlet fügt z. B. den neuen Schritt vorSchritt 1 hinzu.

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 den Wert 10angeben, fügt das Cmdlet den neuen Schritt nach Schritt6 hinzu.

Typ:UInt32
Aliase:InsertStepsStartIndex
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Step

Geben Sie mindestens ein Schrittobjekt an, das der Tasksequenz hinzugefügt werden soll. Verwenden Sie zum Abrufen dieses Objekts eines der Cmdlets New-CMTSStep* . Beispiel: Get-CMTSStepApplyDataImage.

Typ:IResultObject[]
Aliase:Steps
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-TaskSequenceId

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

Typ:String
Aliase:Id, TaskSequencePackageId
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-TaskSequenceName

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

Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

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

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Ausgaben

System.Object

Hinweise

Sie können die Cmdlets Get-CMTSStep*, New-CMTSStep*, Remove-CMTSStep* und Set-CMTSStep* verwenden, auch wenn sie nicht im Abschnitt zu verwandten Links aufgeführt sind. Zum Beispiel:

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