Compartir a través de


Add-CMTaskSequenceStep

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

Sintaxis

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 sobre los pasos de secuencias de tareas, consulte Pasos de secuencia de tareas.

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

  • paso 1
  • paso 2
  • paso 3
  • paso 4
  • group5
    • step5.1
    • step5.2
    • step5.3
    • group5.4
      • step5.4.1
    • paso 5.5
  • paso 6

Cuando se usa el editor de secuencia 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 paso.

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 5del parámetro InsertStepStartIndex , el cmdlet agrega el nuevo paso después de group5 y antes del paso6.

Nota:

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

Ejemplos

Ejemplo 1: Creación de una secuencia de tareas personalizada que ejecuta 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:

  • Ejecución del script 1
  • Ejecución del 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:

  • Ejecución del script 2
  • Ejecución del script 1

Debido a cómo se ordena cada instancia de Add-CMTaskSequenceStep y no 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 a 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. Con la secuencia de tareas de ejemplo en descripción, 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 le 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 package y condition. 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.

Tipo:SwitchParameter
Alias:cf
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-DisableWildcardHandling

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-ForceWildcardHandling

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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-CMTaskSequence o New-CMTaskSequence .

Tipo:IResultObject
Alias:TaskSequence
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín: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, con la secuencia de tareas de ejemplo en descripción, si especifica un valor de 4, el cmdlet agrega el nuevo paso después del paso4.

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 delpaso 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 paso6.

Tipo:UInt32
Alias:InsertStepsStartIndex
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Step

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

Tipo:IResultObject[]
Alias:Steps
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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.

Tipo:String
Alias:Id, TaskSequencePackageId
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-TaskSequenceName

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

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-WhatIf

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

Tipo:SwitchParameter
Alias:wi
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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.