Поделиться через


Add-CMTaskSequenceStep

Добавьте шаг или группу в последовательность задач.

Синтаксис

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

Описание

Используйте этот командлет, чтобы добавить группу или шаг в существующую последовательность задач. Дополнительные сведения о шагах последовательностей задач см. в разделе Шаги последовательности задач.

При программном добавлении шагов в последовательность задач важно понимать порядок индексов шагов. Чтобы визуализировать индекс, в этой статье используется следующий пример последовательности задач:

  • шаг 1
  • шаг 2
  • шаг 3
  • шаг 4
  • group5
    • шаг 5.1
    • шаг 5.2
    • шаг 5.3
    • group5.4
      • шаг 5.4.1
    • шаг 5.5
  • шаг 6

При использовании редактора последовательности задач для добавления шага новый шаг добавляется после выбранного шага. Этот командлет работает аналогично, он добавляет шаг после указанного индекса. Для указания индекса шага используется параметр InsertStepStartIndex .

Этот командлет может добавлять шаги только на основной уровень последовательности задач, но не в группах. Чтобы добавить шаги в группах, используйте команду Set-CMTaskSequenceGroup. Например, в примере последовательности задач, если вы используете Add-CMTaskSequenceStep со значением 5параметра InsertStepStartIndex, командлет добавляет новый шаг после group5 и перед шагом 6.

Примечание.

Запустите командлеты Configuration Manager с диска сайта Configuration Manager, например PS XYZ:\>. Дополнительные сведения см. в статье Начало работы.

Примеры

Пример 1. Создание пользовательской последовательности задач, которая выполняет два сценария PowerShell

В этом примере первые две команды используют командлет New-CMTaskSequenceSequenceStepRunPowerShellScript для создания объектов шагов для шага Запуск скрипта PowerShell . Третья команда создает новую пользовательскую последовательность задач с именем Run scripts. Четвертая команда передает новый объект последовательности задач через конвейер в 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, $step2)

Результирующая последовательность задач выглядит следующим образом:

  • Запуск скрипта 1
  • Запуск скрипта 2

Шаги упорядочены таким образом из-за того, как они упорядочены в параметре Step .

Пример 2. Создание настраиваемой последовательности задач, которая выполняет два скрипта PowerShell с разным порядком

Этот пример аналогичен примеру 1, за исключением двух экземпляров командлета 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

Результирующая последовательность задач выглядит следующим образом:

  • Запуск скрипта 2
  • Запуск скрипта 1

Из-за упорядочения каждого экземпляра Add-CMTaskSequenceStepStep и не используется параметр InsertStepStartIndex , по умолчанию используется индекс 0. Поэтому командлет добавляет второй шаг перед первым.

Пример 3. Добавление шага по определенному индексу

В этом примере сначала используется командлет New-CMTSStepSetVariable для создания объекта шага для шага Задание переменной последовательности задач . Затем он добавляет этот шаг в последовательность задач с именем ts1 после шага с индексом 2. Используя пример последовательности задач в описании, эта команда добавляет newStep между шагами 2 и шагами 3.

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

Пример 4. Копирование последовательности задач и добавление нового шага

В этом примере копируется существующая последовательность задач, а затем она переименовывается. Следующий набор шагов перенастраивает область безопасности. Затем он получает идентификатор пакета и копирует объект условия из другого шага. В последней группе создается новый шаг выполнить командную строку , в котором используются объекты пакета и условия. Затем он добавляет новый шаг в новую последовательность задач по индексу 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

Параметры

-Confirm

Перед запуском командлет запросит подтверждение.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DisableWildcardHandling

Этот параметр обрабатывает подстановочные знаки как литеральные символы. Вы не можете объединить его с ForceWildcardHandling.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ForceWildcardHandling

Этот параметр обрабатывает подстановочные знаки и может привести к непредвиденному поведению (не рекомендуется). Его нельзя объединить с DisableWildcardHandling.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InputObject

Укажите объект последовательности задач, в который командлет добавляет шаг. Чтобы получить этот объект, используйте командлеты Get-CMTaskSequence, Copy-CMTaskSequence или New-CMTaskSequence .

Тип:IResultObject
Aliases:TaskSequence
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-InsertStepStartIndex

Укажите целочисленное значение для индекса последовательности задач. Командлет добавляет новый шаг после указанного индекса. Например, используя пример последовательности задач в описании, если указать значение 4, командлет добавляет новый шаг после шага 4.

Если указать значение 0, командлет добавит новый шаг в верхней части последовательности задач. Если этот параметр не указан, это поведение будет использоваться по умолчанию. Например, командлет добавляет новый шаг передшагом 1.

Максимальное значение отсутствует. Если указать значение, превышающее индекс последнего шага, командлет добавляет новый шаг в конце последовательности задач. Например, если указать значение 10, командлет добавит новый шаг после шага 6.

Тип:UInt32
Aliases:InsertStepsStartIndex
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Step

Укажите один или несколько объектов шагов для добавления в последовательность задач. Чтобы получить этот объект, используйте один из командлетов New-CMTSStep* . Например, Get-CMTSStepApplyDataImage.

Тип:IResultObject[]
Aliases:Steps
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TaskSequenceId

Укажите идентификатор последовательности задач, в которую командлет добавляет шаг. Этот идентификатор является идентификатором пакета последовательности задач, например XYZ00861.

Тип:String
Aliases:Id, TaskSequencePackageId
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-TaskSequenceName

Укажите имя последовательности задач, в которую командлет добавляет шаг.

Тип:String
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет при запуске этого командлета. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

Выходные данные

System.Object

Примечания

Хотя они не указаны в разделе связанных ссылок, можно использовать командлеты Get-CMTSStep*, New-CMTSStep*, Remove-CMTSStep*и Set-CMTSStep* . Например:

Существует набор этих командлетов для каждого шага последовательности задач.