Add-CMTaskSequenceStep

Agregue un paso o un grupo a una secuencia de tareas.

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

Description

Use este cmdlet para agregar un grupo o paso a una secuencia de tareas existente. Para obtener más información acerca de los pasos de secuencias de tareas, vea Pasos de secuencia de tareas.

Al agregar pasos mediante programación a una secuencia de tareas, es importante comprender el orden de índice de los pasos. Para ayudar a visualizar el índice, este artículo usa la siguiente secuencia de tareas de ejemplo:

  • step1
  • step2
  • step3
  • step4
  • group5
    • step5.1
    • step5.2
    • step5.3
    • group5.4
      • step5.4.1
    • step5.5
  • step6

Cuando se usa el editor de secuencias de tareas para agregar un paso, el nuevo paso se agrega después del paso seleccionado actualmente. Este cmdlet funciona de forma similar, agrega el paso después del índice especificado. Use el parámetro InsertStepStartIndex para especificar el índice de pasos.

Este cmdlet solo puede agregar pasos al nivel principal de la secuencia de tareas, no en grupos. Para agregar pasos en grupos, use Set-CMTaskSequenceGroup. Por ejemplo, con la secuencia de tareas de ejemplo, si usa Add-CMTaskSequenceStep con el valor del parámetro InsertStepStartIndex , el cmdlet agrega el nuevo paso después de group5 y antes del 5 paso 6. ****

Nota

Ejecute los cmdlets de Configuration Manager desde la unidad de sitio de Configuration Manager, por ejemplo PS XYZ:\> . Para obtener más información, vea getting started.

Ejemplos

Ejemplo 1: Crear una secuencia de tareas personalizada que ejecute dos scripts de PowerShell

En este ejemplo, los dos primeros comandos usan el cmdlet New-CMTaskSequenceStepRunPowerShellScript para crear objetos de paso para el paso Ejecutar script de Powershell. El tercer comando crea una nueva secuencia de tareas personalizada denominada Ejecutar scripts. El cuarto comando pasa el nuevo objeto de secuencia de tareas a través de la canalización a Add-CMTaskSequenceStep, que agrega los dos pasos.

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

La secuencia de tareas resultante es similar a la siguiente lista:

  • Ejecutar script 1
  • Ejecutar script 2

Los pasos se ordenan de esta manera debido a cómo se ordenan en el parámetro Step.

Ejemplo 2: Crear una secuencia de tareas personalizada que ejecute dos scripts de PowerShell con un orden diferente

Este ejemplo es similar al ejemplo 1, excepto que usa dos instancias del cmdlet Add-CMTaskSequenceStep.

$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

La secuencia de tareas resultante es similar a la siguiente lista:

  • Ejecutar script 2
  • Ejecutar script 1

Debido a cómo se ordena cada instancia de Add-CMTaskSequenceStep y ninguno usa el parámetro InsertStepStartIndex, de forma predeterminada usan index 0 . Por lo tanto, el cmdlet agrega el segundo paso antes del primer paso.

Ejemplo 3: Agregar un paso en un índice específico

En este ejemplo se usa primero el cmdlet New-CMTSStepSetVariable para crear un objeto step para el paso Establecer variable de secuencia de tareas. A continuación, agrega este paso a la secuencia de tareas denominada ts1 después del paso en el índice 2. Mediante la secuencia de tareas de ejemplo de description, este comando agrega newStep entre step2 y step3.

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

Ejemplo 4: Copiar una secuencia de tareas y agregar un nuevo paso

En este ejemplo se copia una secuencia de tareas existente y, a continuación, se cambia el nombre. El siguiente conjunto de pasos vuelve a configurar el ámbito de seguridad. A continuación, obtiene el identificador de un paquete y copia un objeto de condición de otro paso. En el último grupo, crea un nuevo paso Ejecutar línea de comandos que usa los objetos de paquete y condición. A continuación, agrega el nuevo paso a la nueva secuencia de tareas en el índice 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

Parámetros

- Confirm

Solicitará confirmación antes de ejecutar el cmdlet.

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

-DisableWildcardHandling

Este parámetro trata los caracteres comodín como valores de caracteres literales. No se puede combinar con ForceWildcardHandling.

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

-ForceWildcardHandling

Este parámetro procesa caracteres comodín y puede provocar un comportamiento inesperado (no recomendado). No se puede combinar con DisableWildcardHandling.

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

-InputObject

Especifique un objeto de secuencia de tareas al que el cmdlet agrega el paso. Para obtener este objeto, use los cmdlets Get-CMTaskSequence, Copy-CMTaskSequenceo New-CMTaskSequence.

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

-InsertStepStartIndex

Especifique un valor entero para el índice de secuencia de tareas. El cmdlet agrega el nuevo paso después de este índice especificado. Por ejemplo, mediante la secuencia de tareas de ejemplo de description, si especifica un valor de , el cmdlet agrega el 4 nuevo paso después del paso 4.

Si especifica un valor de 0 , el cmdlet agrega el nuevo paso en la parte superior de la secuencia de tareas. Este comportamiento es el predeterminado si no especifica este parámetro. Por ejemplo, el cmdlet agrega el nuevo paso antes del paso 1.

No hay ningún valor máximo. Si especifica un valor mayor que el índice del último paso, el cmdlet agrega el nuevo paso al final de la secuencia de tareas. Por ejemplo, si especifica un valor de 10 , el cmdlet agrega el nuevo paso después del paso 6.

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

-Step

Especifique uno o varios objetos de paso para agregar a la secuencia de tareas. Para obtener este objeto, use uno de los **cmdlets New-CMTSStep. * ** Por ejemplo, Get-CMTSStepApplyDataImage.

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

-TaskSequenceId

Especifique el identificador de una secuencia de tareas a la que el cmdlet agrega el paso. Este identificador es el identificador del paquete de secuencia de tareas, por ejemplo XYZ00861 .

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

-TaskSequenceName

Especifique el nombre de una secuencia de tareas a la que el cmdlet agrega el paso.

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

-WhatIf

Muestra lo que ocurriría si se ejecuta el cmdlet. El cmdlet no se ejecuta.

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

Entradas

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Salidas

System.Object

Notas

Aunque no aparece en la sección de vínculos relacionados, puede usar los cmdlets **Get-CMTSStep * _, _ New-CMTSStep * _, _ Remove-CMTSStep * _y _ Set-CMTSStep. * ** Por ejemplo:

Hay un conjunto de estos cmdlets para cada paso de secuencia de tareas.