Compartilhar via


Add-CMTaskSequenceStep

Adicione um passo ou grupo a uma sequência de tarefas.

Sintaxe

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

Utilize este cmdlet para adicionar um grupo ou passo a uma sequência de tarefas existente. Para obter mais informações sobre os passos de sequências de tarefas, veja Passos de sequência de tarefas.

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

  • passo 1
  • passo 2
  • passo 3
  • passo 4
  • grupo5
    • passo5.1
    • passo5.2
    • passo5.3
    • group5.4
      • step5.4.1
    • passo5.5
  • passo6

Quando utiliza o editor de sequência de tarefas para adicionar um passo, o novo passo é adicionado após o passo atualmente selecionado. Este cmdlet funciona da mesma forma, adiciona o passo após o índice especificado. Utilize o parâmetro InsertStepStartIndex para especificar o índice de passos.

Este cmdlet só pode adicionar passos ao nível principal da sequência de tarefas, não em grupos. Para adicionar passos em grupos, utilize Set-CMTaskSequenceGroup. Por exemplo, com a sequência de tarefas de exemplo, se utilizar Add-CMTaskSequenceStep com o valor 5do parâmetro InsertStepStartIndex, o cmdlet adiciona o novo passo após o grupo5 e antes do passo6.

Observação

Execute cmdlets do Configuration Manager a partir da unidade do site do Configuration Manager, por exemplo PS XYZ:\>. Para obter mais informações, veja Introdução.

Exemplos

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

Neste exemplo, os dois primeiros comandos utilizam o cmdlet New-CMTaskSequenceStepRunPowerShellScript para criar objetos de passo para o passo Executar Script do PowerShell . O terceiro comando cria uma nova sequência de tarefas personalizada denominada Executar scripts. O quarto comando transmite o novo objeto de sequência de tarefas através do pipeline para Add-CMTaskSequenceStep, que adiciona os dois passos.

$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 assemelha-se à seguinte lista:

  • Executar script 1
  • Executar script 2

Os passos são ordenados desta forma devido à forma como são ordenados no parâmetro Passo .

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 utiliza 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 assemelha-se à seguinte lista:

  • Executar script 2
  • Executar script 1

Devido à forma como cada instância de Add-CMTaskSequenceStep é ordenada e não utiliza o parâmetro InsertStepStartIndex , por predefinição, utilizam o índice 0. Assim, o cmdlet adiciona o segundo passo antes do primeiro passo.

Exemplo 3: adicionar um passo a um índice específico

Este exemplo utiliza primeiro o cmdlet New-CMTSStepSetVariable para criar um objeto de passo para o passo Definir Variável de Sequência de Tarefas . Em seguida, adiciona este passo à sequência de tarefas com o nome ts1 após o passo no índice 2. Com a sequência de tarefas de exemplo na Descrição, este comando adiciona newStep entre o passo2 e o passo3.

$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 um novo passo

Este exemplo copia uma sequência de tarefas existente e, em seguida, muda o nome da mesma. O próximo conjunto de passos reconfigura o âmbito de segurança. Em seguida, obtém o ID de um pacote e copia um objeto de condição de outro passo. No último grupo, cria um novo passo Executar Linha de Comandos que utiliza o pacote e os objetos de condição. Em seguida, adiciona o novo passo à 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.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DisableWildcardHandling

Este parâmetro trata os carateres universais como valores de carateres literais. Não pode combiná-lo com ForceWildcardHandling.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ForceWildcardHandling

Este parâmetro processa carateres universais e pode levar a um comportamento inesperado (não recomendado). Não pode combiná-lo com DisableWildcardHandling.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

Especifique um objeto de sequência de tarefas ao qual o cmdlet adiciona o passo. Para obter este objeto, utilize os cmdlets Get-CMTaskSequence, Copy-CMTaskSequence ou New-CMTaskSequence .

Tipo:IResultObject
Aliases:TaskSequence
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-InsertStepStartIndex

Especifique um valor inteiro para o índice de sequência de tarefas. O cmdlet adiciona o novo passo após este índice especificado. Por exemplo, ao utilizar a sequência de tarefas de exemplo na Descrição, se especificar um valor de 4, o cmdlet adiciona o novo passo após o passo4.

Se especificar um valor de 0, o cmdlet adiciona o novo passo na parte superior da sequência de tarefas. Este comportamento é a predefinição se não especificar este parâmetro. Por exemplo, o cmdlet adiciona o novo passo antesdo passo 1.

Não existe nenhum valor máximo. Se especificar um valor superior ao índice do último passo, o cmdlet adiciona o novo passo no final da sequência de tarefas. Por exemplo, se especificar um valor de 10, o cmdlet adiciona o novo passo após o passo6.

Tipo:UInt32
Aliases:InsertStepsStartIndex
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Step

Especifique um ou mais objetos de passo a adicionar à sequência de tarefas. Para obter este objeto, utilize um dos cmdlets New-CMTSStep* . Por exemplo, Get-CMTSStepApplyDataImage.

Tipo:IResultObject[]
Aliases:Steps
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-TaskSequenceId

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

Tipo:String
Aliases:Id, TaskSequencePackageId
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-TaskSequenceName

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

Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-WhatIf

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

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Saídas

System.Object

Observações

Embora não esteja listado na secção de ligações relacionadas, pode utilizar os cmdlets Get-CMTSStep*, New-CMTSStep*, Remove-CMTSStep*e Set-CMTSStep* . Por exemplo:

Existe um conjunto destes cmdlets para cada passo de sequência de tarefas.