Add-CMTaskSequenceStep

Adicione uma etapa ou grupo a uma sequência de tarefas.

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 adicionar um grupo ou etapa a uma sequência de tarefas existente. Para obter mais informações sobre etapas de sequências de tarefas, consulte Etapas da sequência de tarefas.

Ao adicionar etapas programaticamente a uma sequência de tarefas, é importante compreender a ordem de índice das etapas. Para ajudar a visualizar o índice, este artigo usa a seguinte sequência de tarefas de exemplo:

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

Quando você usa o editor de sequência de tarefas para adicionar uma etapa, a nova etapa é adicionada após a etapa selecionada no momento. Esse cmdlet funciona da mesma forma, ele adiciona a etapa após o índice especificado. Use o parâmetro InsertStepStartIndex para especificar o índice de etapa.

Esse cmdlet só pode adicionar etapas ao nível principal da sequência de tarefas, não em grupos. Para adicionar etapas em grupos, use Set-CMTaskSequenceGroup. Por exemplo, com a sequência de tarefas de exemplo, se você usar Add-CMTaskSequenceStep com o valor do parâmetro InsertStepStartIndex, o cmdlet adicionará a nova etapa após o group5 e antes da 5 etapa6. ****

Observação

Execute cmdlets do Configuration Manager na unidade de site do Configuration Manager, por PS XYZ:\> exemplo. Para obter mais informações, consulte getting started.

Exemplos

Exemplo 1: Criar uma sequência de tarefas personalizada que executa dois scripts do PowerShell

Neste exemplo, os dois primeiros comandos usam o cmdlet New-CMTaskSequenceStepRunPowerShellScript para criar objetos de etapa para a etapa Executar Script do Powershell. O terceiro comando cria uma nova sequência de tarefas personalizada chamada Executar scripts. O quarto comando passa o novo objeto de sequência de tarefas pelo pipeline para Add-CMTaskSequenceStep, que adiciona as duas etapas.

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

A sequência de tarefas resultante se parece com a seguinte lista:

  • Executar script 1
  • Executar script 2

As etapas são ordenadas dessa forma devido à forma como são ordenadas no parâmetro Step.

Exemplo 2: Criar uma sequência de tarefas personalizada que executa dois scripts do PowerShell com uma ordem diferente

Este exemplo é semelhante ao Exemplo 1, exceto que ele usa duas instâncias do 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

A sequência de tarefas resultante se parece com a seguinte lista:

  • Executar script 2
  • Executar script 1

Por causa de como cada instância de Add-CMTaskSequenceStep é ordenada e nem usa o parâmetro InsertStepStartIndex, por padrão, eles usam índice 0 . Portanto, o cmdlet adiciona a segunda etapa antes da primeira etapa.

Exemplo 3: Adicionar uma etapa em um índice específico

Este exemplo usa primeiro o cmdlet New-CMTSStepSetVariable para criar um objeto step para a etapa Definir Variável de Sequência de Tarefas. Em seguida, ele adiciona esta etapa à sequência de tarefas chamada ts1 após a etapa no índice 2. Usando a sequência de tarefas de exemplo na Descrição, este comando adiciona newStep entre a etapa2 e a etapa3.

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

Exemplo 4: copiar uma sequência de tarefas e adicionar uma nova etapa

Este exemplo copia uma sequência de tarefas existente e a renomeia. O próximo conjunto de etapas reconfigura o escopo de segurança. Em seguida, obtém a ID de um pacote e copia um objeto condition de outra etapa. No último grupo, ele cria uma nova etapa Executar Linha de Comando que usa o pacote e os objetos condition. Em seguida, adiciona a nova etapa à nova sequência de tarefas no í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

Solicita a confirmação antes de executar o cmdlet.

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

-DisableWildcardHandling

Este parâmetro trata caracteres curinga como valores literais de caracteres. Não é possível combiná-lo com ForceWildcardHandling.

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

-ForceWildcardHandling

Esse parâmetro processa caracteres curinga e pode levar a um comportamento inesperado (não recomendado). Não é possível combiná-lo com DisableWildcardHandling.

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

-InputObject

Especifique um objeto de sequência de tarefas ao qual o cmdlet adiciona a etapa. Para obter esse objeto, use os cmdlets Get-CMTaskSequence, Copy-CMTaskSequenceou New-CMTaskSequence.

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

-InsertStepStartIndex

Especifique um valor inteiro para o índice de sequência de tarefas. O cmdlet adiciona a nova etapa após esse índice especificado. Por exemplo, usando a sequência de tarefas de exemplo na Descrição ,se você especificar um valor de , o cmdlet adiciona a nova etapa após a 4 etapa4.

Se você especificar um valor 0 de , o cmdlet adiciona a nova etapa na parte superior da sequência de tarefas. Esse comportamento é o padrão se você não especificar esse parâmetro. Por exemplo, o cmdlet adiciona a nova etapa antes da etapa1.

Não há valor máximo. Se você especificar um valor maior que o índice da última etapa, o cmdlet adiciona a nova etapa no final da sequência de tarefas. Por exemplo, se você especificar um valor 10 de , o cmdlet adiciona a nova etapa após a etapa6.

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

-Step

Especifique um ou mais objetos de etapa para adicionar à sequência de tarefas. Para obter esse objeto, use um dos cmdlets **New-CMTSStep. * ** Por exemplo, Get-CMTSStepApplyDataImage.

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

-TaskSequenceId

Especifique a ID de uma sequência de tarefas à qual o cmdlet adiciona a etapa. Essa ID é a ID do pacote de sequência de tarefas, por exemplo XYZ00861 .

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

-TaskSequenceName

Especifique o nome de uma sequência de tarefas à qual o cmdlet adiciona a etapa.

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

-WhatIf

Mostrar o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

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

Entradas

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Saídas

System.Object

Observações

Embora não seja listado na seção links relacionados, você pode usar os cmdlets **Get-CMTSStep * _, _ New-CMTSStep * _, _ Remove-CMTSStep * _, e _ Set-CMTSStep. * ** Por exemplo:

Há um conjunto desses cmdlets para cada etapa de sequência de tarefas.