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:
- Get-CMTSStepApplyDataImage
- New-CMTSStepApplyDataImage
- Remove-CMTSStepApplyDataImage
- Set-CMTSStepApplyDataImage
Für jeden Tasksequenzschritt gibt es eine Reihe dieser Cmdlets.