PowerShellOnTargetMachines@3 - ターゲット マシン v3 タスクの PowerShell

このタスクを使用して、PSSession を使用してリモート コンピューターで PowerShell スクリプトを実行し、リモート処理に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. 必須です。

コンピューターの FQDN または IP アドレスのコンマ区切りの一覧を指定し、必要に応じてポート番号を含めます。 次の値をとります。

  • Azure リソース グループの名前。
  • コンピューター名のコンマ区切りの一覧。 例: dbserver.fabrikam.com,dbserver_int.fabrikam.com:5986,192.168.34:5986
  • 前のタスクの出力変数。

ポートを指定しない場合は、既定の WinRM ポートが使用されます。 これは、構成したプロトコルによって異なります。 WinRM 2.0 の場合、既定の HTTP ポートは で 5985 、既定の HTTPS ポートは です 5986


UserName -
string.

ターゲット ホスト上のドメインまたはローカル管理アカウントのユーザー名を指定します。

  • domain\usernamemachine-name\username.\username などのusername形式がサポートされています。
  • や などの組み込みのシステム アカウントNT Authority\Systemなどの username@domain.com UPN 形式はサポートされていません。

UserPassword - パスワード
string.

ターゲット マシンのパスワードを指定します。 としてビルド/リリース定義で定義 $(passwordVariable) された変数が受け入れられます。 変数の型を として secret マークして、セキュリティで保護することができます。


ScriptType - スクリプトの種類
string. 使用できる値: FilePath (ファイル パス)、 Inline。 既定値: Inline

実行するスクリプトの種類 (インラインまたはファイル パス) を指定します。


ScriptPath - スクリプト ファイルのパス
string. の場合は ScriptType = FilePath必須です。

ターゲット コンピューターまたは UNC パス (など C:\BudgetIT\Web\Deploy\Website.ps1) 上の PowerShell スクリプトの場所を指定します。ターゲット コンピューターからアクセスできる必要があります。


InlineScript - スクリプト
string. の場合は ScriptType = Inline必須です。 既定値: # Write your powershell commands here.\n\nWrite-Output "Hello World"


ScriptArguments - スクリプト引数
string. 任意。 の場合は ScriptType = FilePathを使用します。

PowerShell スクリプトの引数を指定します。 序数パラメーターまたは名前付きパラメーター (test など -testParam ) を指定できます。 たとえば、-applicationPath $(applicationPath)-username $(vmusername)-password $(vmpassword) などです。


InitializationScript - 初期化スクリプト
string. 省略可能。 の場合は ScriptType = FilePathを使用します。

ターゲット マシンまたは UNC パス上の DSC のデータ スクリプトの場所を指定します (例: C:\BudgetIT\Web\Deploy\WebsiteConfiguration.ps1)。 初期化スクリプトの代わりに引数を使用することをお勧めします。


SessionVariables - セッション変数
string. 省略可能。 の場合は ScriptType = FilePathを使用します。

PowerShell スクリプトのセッション変数を設定するために使用します。
などの $varx=valuex, $vary=valueyコンマ区切りのリストを指定します。 以前のバージョンのリリース サービスとの下位互換性のために最も一般的に使用されます。 セッション変数の代わりに引数を使用することをお勧めします。


CommunicationProtocol - プロトコル
string. 使用できる値: HttpHttps。 既定値: Https

コンピューターとの WinRM サービス接続に使用するプロトコルを指定します。 既定値は HTTPS です。


AuthenticationMechanism - 認証
string. 使用できる値: DefaultCredssp。 既定値: Default

PSSession の作成に使用される認証メカニズムを指定します。 認証の場合 CredSSP は、ユーザー名とパスワードのフィールドが必須です。


NewPsSessionOptionArguments - セッション オプションのパラメーター
string. 既定値: -SkipCACheck -IdleTimeout 7200000 -OperationTimeout 0 -OutputBufferingMode Block

リモート セッションの詳細オプション (New-PSSessionOption)。 たとえば、、、-SkipCACheck-SkipCNCheck-SkipRevocationCheck、などです。詳細については、すべてのセッション オプションの完全な一覧を参照してください。


ErrorActionPreference - ErrorActionPreference
string. 許可値: stopcontinuesilentlyContinue。 既定値: 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 スクリプトが並列に実行されます。


タスク コントロール のオプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。

出力変数

[なし] :

解説

このタスクを使用して、リモート コンピューターで PowerShell スクリプトを実行します。

このタスクでは、PowerShell スクリプトと PowerShell-DSC スクリプトの両方を実行できます。

  • PowerShell スクリプトの場合、コンピューターには PowerShell 2.0 以降がインストールされている必要があります。
  • PowerShell-DSC スクリプトの場合、コンピューターには最新バージョンのWindows Management Frameworkがインストールされている必要があります。 これは、Windows 8.1、Windows Server 2012 R2、およびそれ以降のバージョンに既定でインストールされます。

前提条件

このタスクでは 、Windows リモート管理 (WinRM) を使用して、ドメイン参加済みまたはワークグループ参加済みのオンプレミスの物理コンピューターまたは仮想コンピューターにアクセスします。

オンプレミスの物理コンピューターまたは仮想マシンの WinRM を設定するには

ドメイン参加済みで説明されている手順に従います

Microsoft Azure Virtual Machinesの WinRM を設定するには

Azure Virtual Machinesでは、HTTPS プロトコルを使用するために WinRM が必要です。 自己署名テスト証明書を使用できます。 この場合、自動化エージェントは、信頼された証明機関によって発行された証明書の信頼性を検証しません。

  • Azure クラシック Virtual Machines。 Azure portalからクラシック仮想マシンを作成すると、仮想マシンは既に HTTPS 経由で WinRM 用に設定されており、既定のポート 5986 はファイアウォールで既に開き、自己署名証明書がマシンにインストールされています。 これらの仮想マシンには、それ以上の構成を必要とせずアクセスできます。 既存のクラシック仮想マシンは、 Azure リソース グループのデプロイ タスクを使用して選択することもできます。

  • Azure リソース グループAzure portalで Azure リソース グループが既に定義されている場合は、WinRM HTTPS プロトコルを使用するように構成する必要があります。 ファイアウォールでポート 5986 を開き、自己署名証明書をインストールする必要があります。

仮想マシンを含む Azure リソース グループを動的にデプロイするには、 Azure リソース グループのデプロイ タスクを使用します。 このタスクには、[展開の 前提条件を有効にする] という名前のチェック ボックスがあります。 これを選択すると、仮想マシンに WinRM HTTPS プロトコルが自動的に設定され、ファイアウォールでポート 5986 が開き、テスト証明書がインストールされます。 その後、デプロイ タスクで仮想マシンを使用する準備が整います。

このタスク バージョンの新機能

  • PSSession と invoke-command を使用して、ターゲット マシンでリモート処理を実行します。
  • インライン スクリプト実行のサポートが追加されました。
  • 既定の認証と CredSSP 認証がサポートされています。
  • エラー処理のオプションを追加しました: ErrorActionPreferenceignoreLASTEXITCODE および Fail on Standard Error

必要条件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
実行日 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.134.0 以上
タスクのカテゴリ 配置