PowerShellOnTargetMachines@3 — задача PowerShell на целевых компьютерах версии 3
Используйте эту задачу для выполнения скриптов PowerShell на удаленных компьютерах с помощью PSSession и Invoke-Command для удаленного взаимодействия.
Используйте эту задачу для выполнения скриптов PowerShell на удаленных компьютерах. Эта версия задачи использует PSSession и Invoke-Command для удаленного взаимодействия.
Синтаксис
# PowerShell on target machines v3
# Execute PowerShell scripts on remote machines using PSSession and Invoke-Command for remoting.
- task: PowerShellOnTargetMachines@3
inputs:
Machines: # string. Required. Machines.
#UserName: # string. Username.
#UserPassword: # string. Password.
# Script options
#ScriptType: 'Inline' # 'FilePath' | 'Inline'. Script Type. Default: Inline.
#ScriptPath: # string. Required when ScriptType = FilePath. Script File Path.
InlineScript: # string. Required when ScriptType = Inline. Script.
#ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments.
#InitializationScript: # string. Optional. Use when ScriptType = FilePath. Initialization script.
#SessionVariables: # string. Optional. Use when ScriptType = FilePath. Session Variables.
# PSSession options
#CommunicationProtocol: 'Https' # 'Http' | 'Https'. Protocol. Default: Https.
#AuthenticationMechanism: 'Default' # 'Default' | 'Credssp'. Authentication. Default: Default.
#NewPsSessionOptionArguments: '-SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block' # string. Session Option parameters. Default: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.
# Error handling options
#ErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
# Advanced
#WorkingDirectory: # string. Working Directory.
#RunPowershellInParallel: true # boolean. Run PowerShell in Parallel. Default: true.
# PowerShell on Target Machines v3
# Execute PowerShell scripts on remote machine(s). This version of the task uses PSSession and Invoke-Command for remoting.
- task: PowerShellOnTargetMachines@3
inputs:
Machines: # string. Required. Machines.
#UserName: # string. Username.
#UserPassword: # string. Password.
# Script options
#ScriptType: 'Inline' # 'FilePath' | 'Inline'. Script Type. Default: Inline.
#ScriptPath: # string. Required when ScriptType = FilePath. Script File Path.
InlineScript: # string. Required when ScriptType = Inline. Script.
#ScriptArguments: # string. Optional. Use when ScriptType = FilePath. Script Arguments.
#InitializationScript: # string. Optional. Use when ScriptType = FilePath. Initialization script.
#SessionVariables: # string. Optional. Use when ScriptType = FilePath. Session Variables.
# PSSession options
#CommunicationProtocol: 'Https' # 'Http' | 'Https'. Protocol. Default: Https.
#AuthenticationMechanism: 'Default' # 'Default' | 'Credssp'. Authentication. Default: Default.
#NewPsSessionOptionArguments: '-SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block' # string. Session Option parameters. Default: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block.
# Error handling options
#ErrorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
# Advanced
#WorkingDirectory: # string. Working Directory.
#RunPowershellInParallel: true # boolean. Run PowerShell in Parallel. Default: true.
Входные данные
Machines
- Машины
string
. Обязательный.
Указывает разделенный запятыми список полных доменных имен компьютеров или IP-адресов и при необходимости включает номер порта. Возможны следующие варианты:
- Имя группы ресурсов Azure.
- Список имен компьютеров с разделителями-запятыми. Например,
dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
. - Выходная переменная из предыдущей задачи.
Если не указать порт, используется порт WinRM по умолчанию. Это зависит от настроенного протокола. Для WinRM 2.0 http-портом по умолчанию является 5985
, а портОМ HTTPS по умолчанию является 5986
.
UserName
- Пользователя
string
.
Указывает имя пользователя домена или учетной записи локального администратора на целевых узлах.
- Поддерживаются такие форматы, как
username
,domain\username
,machine-name\username
и.\username
. - Форматы имени участника-пользователя, такие как
username@domain.com
и встроенные системные учетные записи, такие какNT Authority\System
, не поддерживаются.
UserPassword
- Пароль
string
.
Указывает пароль для целевых компьютеров. Переменные, определенные в определениях сборки и выпуска как $(passwordVariable)
принятые. Вы можете пометить тип переменной как secret
, чтобы защитить его.
ScriptType
- Тип скрипта
string
. Допустимые значения: FilePath
(Путь к файлу), Inline
. Значение по умолчанию: Inline
.
Указывает тип выполняемого скрипта: Встроенный или Путь к файлу.
ScriptPath
- Путь к файлу скрипта
string
. Требуется при .ScriptType = FilePath
Указывает расположение скрипта PowerShell на целевых компьютерах или по пути UNC, например C:\BudgetIT\Web\Deploy\Website.ps1
, который должен быть доступен с целевого компьютера.
InlineScript
- Сценарий
string
. Требуется при .ScriptType = Inline
Значение по умолчанию: # Write your powershell commands here.\n\nWrite-Output "Hello World"
.
ScriptArguments
- Аргументы скрипта
string
. Необязательный элемент. Используйте при ScriptType = FilePath
.
Указывает аргументы для скрипта PowerShell. Это могут быть порядковые или именованные параметры, например -testParam
test. Пример: -applicationPath $(applicationPath)
, -username $(vmusername)
, -password $(vmpassword)
.
InitializationScript
- Скрипт инициализации
string
. Необязательный элемент. Используйте при ScriptType = FilePath
.
Указывает расположение скрипта данных для DSC на целевых компьютерах или по пути UNC, например C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1
. Рекомендуется использовать аргументы вместо скрипта инициализации.
SessionVariables
- Переменные сеанса
string
. Необязательный элемент. Используйте при ScriptType = FilePath
.
Используется для настройки переменных сеанса для сценариев PowerShell.
Задает список с разделителями-запятыми, например $varx=valuex, $vary=valuey
. Чаще всего используется для обеспечения обратной совместимости с более ранними версиями службы выпуска. Рекомендуется использовать аргументы вместо переменных сеанса.
CommunicationProtocol
- Протокол
string
. Допустимые значения: Http
, Https
. Значение по умолчанию: Https
.
Указывает протокол, используемый для подключения службы WinRM к компьютерам. Значение по умолчанию — HTTPS
.
AuthenticationMechanism
- Проверки подлинности
string
. Допустимые значения: Default
, Credssp
. Значение по умолчанию: Default
.
Указывает механизм проверки подлинности, используемый для создания PSSession. Для CredSSP
проверки подлинности поля имени пользователя и пароля являются обязательными.
NewPsSessionOptionArguments
- Параметры параметра сеанса
string
. Значение по умолчанию: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block
.
Дополнительные параметры удаленного сеанса (New-PSSessionOption). Например, -SkipCACheck
, -SkipCNCheck
, -SkipRevocationCheck
и т. д. Дополнительные сведения см. в полном списке всех параметров сеанса .
ErrorActionPreference
- ErrorActionPreference
string
. Допустимые значения: stop
, continue
, silentlyContinue
. Значение по умолчанию: stop
.
Добавляет строку $ErrorActionPreference = 'VALUE'
в начало скрипта.
failOnStderr
- Сбой при стандартной ошибке
boolean
. Значение по умолчанию: false
.
Если задано значение true
, происходит сбой, если какие-либо ошибки записываются в конвейер ошибок или какие-либо данные записываются в поток стандартных ошибок. В противном случае задача использует код выхода для определения сбоя.
ignoreLASTEXITCODE
- Пропуск $LASTEXITCODE
boolean
. Значение по умолчанию: false
.
Если задано значение false
, строка if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
выполняется в конце скрипта. Это приводит к тому, что последний код выхода из внешней команды распространяется как код выхода PowerShell. В противном случае строка не будет выполнена до конца скрипта.
WorkingDirectory
- Рабочий каталог
string
.
Указывает рабочий каталог, в котором выполняется скрипт.
RunPowershellInParallel
- Запуск PowerShell в параллельном режиме
boolean
. Значение по умолчанию: true
.
Если задано значение true
, скрипты PowerShell выполняются параллельно на целевых компьютерах.
Параметры управления задачами
Все задачи имеют параметры управления в дополнение к входным данным задачи. Дополнительные сведения см. в разделе Параметры управления и общие свойства задачи.
Выходные переменные
Нет.
Remarks
Используйте эту задачу для выполнения скриптов PowerShell на удаленных компьютерах.
Эта задача может выполнять как сценарии PowerShell, так и сценарии PowerShell-DSC:
- Для сценариев PowerShell на компьютерах должна быть установлена среда PowerShell 2.0 или более поздней версии.
- Для сценариев PowerShell-DSC на компьютерах должна быть установлена последняя версия Windows Management Framework. Он устанавливается по умолчанию в Windows 8.1, Windows Server 2012 R2 и последующих версиях.
Предварительные требования
Эта задача использует удаленное управление Windows (WinRM) для доступа к локальным физическим компьютерам или виртуальным компьютерам, присоединенным к домену или к рабочей группе.
Настройка WinRM для локальных физических компьютеров или виртуальных машин
Выполните действия, описанные в разделе Присоединение к домену
Настройка WinRM для Microsoft Azure Виртуальные машины
Azure Виртуальные машины требовать, чтобы WinRM использовал протокол HTTPS. Можно использовать самозаверяющий тестовый сертификат. В этом случае агент автоматизации не будет проверять подлинность сертификата, выданного доверенным центром сертификации.
Классическая Виртуальные машины Azure. При создании классической виртуальной машины из портал Azure виртуальная машина уже настроена для WinRM по протоколу HTTPS, при этом в брандмауэре уже открыт порт по умолчанию 5986 и на ней установлен самозаверяющий сертификат. Доступ к этим виртуальным машинам можно получить без дополнительной настройки. Существующие классические виртуальные машины можно также выбрать с помощью задачи развертывания группы ресурсов Azure .
Группа ресурсов Azure. Если в портал Azure уже определена группа ресурсов Azure, необходимо настроить ее для использования протокола WINRM HTTPS. Необходимо открыть порт 5986 в брандмауэре и установить самозаверяющий сертификат.
Для динамического развертывания групп ресурсов Azure, содержащих виртуальные машины, используйте задачу развертывания группы ресурсов Azure . Эта задача имеет флажок Включить необходимые компоненты для развертывания. Выберите этот параметр, чтобы автоматически настроить протокол WINRM HTTPS на виртуальных машинах, открыть порт 5986 в брандмауэре и установить тестовый сертификат. Затем виртуальные машины будут готовы к использованию в задаче развертывания.
Новые возможности этой версии задачи
- Использует PSSession и invoke-command для выполнения удаленного взаимодействия на целевых компьютерах.
- Добавлена поддержка выполнения встроенных скриптов.
- Поддерживаются проверка подлинности По умолчанию и CredSSP.
- Добавлены параметры для обработки ошибок:
ErrorActionPreference
, и сбойignoreLASTEXITCODE
при стандартной ошибке.
Требования
Требование | Описание |
---|---|
Типы конвейеров | YAML, классическая сборка, классический выпуск |
Выполняется в | Агент, DeploymentGroup |
Требования | Нет |
Capabilities | Эта задача не удовлетворяет требованиям для последующих задач в задании. |
Ограничения команд | Любой |
Устанавливаемые переменные | Любой |
Версия агента | 2.134.0 или более поздней версии |
Категория задач | Развертывание |