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-Parameterwert5
verwenden, 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 0
verwendet. 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 4
angeben, fügt das Cmdlet den neuen Schritt nach Schritt 4 hinzu.
Wenn Sie den Wert 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. 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 10
angeben, 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:
- Get-CMTSStepApplyDataImage
- New-CMTSStepApplyDataImage
- Remove-CMTSStepApplyDataImage
- Set-CMTSStepApplyDataImage
Für jeden Tasksequenzschritt gibt es eine Reihe dieser Cmdlets.