このタスクを使用して、リモート処理に PSSession と Invoke-Command を使用して、リモート コンピューターで PowerShell スクリプトを実行します。
構文
# 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.
入力
Machines
-
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
.
ターゲット ホスト上のドメインまたはローカル管理アカウントのユーザー名を指定します。
-
username
、domain\username
、machine-name\username
、.\username
などの形式がサポートされています。 -
username@domain.com
などの UPN 形式や、NT Authority\System
などの組み込みシステム アカウントはサポートされていません。
UserPassword
-
パスワード
string
.
ターゲット マシンのパスワードを指定します。
$(passwordVariable)
としてビルド/リリース定義で定義された変数が受け入れられます。 変数の型は、セキュリティで保護するために secret
としてマークできます。
ScriptType
-
スクリプトの種類
string
. 使用できる値: FilePath
(ファイル パス)、Inline
。 既定値: Inline
.
実行するスクリプトの種類 (インラインパスまたはファイル パス) を指定します。
ScriptPath
-
スクリプト ファイル パスの
string
.
ScriptType = FilePath
する場合に必要です。
ターゲット コンピューターまたはターゲット コンピューターからアクセスできる必要がある C:\BudgetIT\Web\Deploy\Website.ps1
などの UNC パス上の PowerShell スクリプトの場所を指定します。
InlineScript
-
スクリプト
string
.
ScriptType = Inline
する場合に必要です。 既定値: # Write your powershell commands here.\n\nWrite-Output "Hello World"
.
ScriptArguments
-
スクリプト引数の
string
. 任意
ScriptType = FilePath
するときに使用します。
PowerShell スクリプトの引数を指定します。 序数パラメーターまたは名前付きパラメーター (-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
. 使用できる値: 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 スクリプトが並列に実行されます。
タスク コントロールのオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。
出力変数
なし。
注釈
このタスクを使用して、リモート コンピューターで 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 が必要です。 自己署名テスト証明書を使用できます。 この場合、Automation エージェントは、信頼された証明機関によって発行された証明書の信頼性を検証しません。
Azure クラシック仮想マシン をします。 Azure portal から クラシック仮想マシンを作成すると、仮想マシンは既に HTTPS 経由で WinRM 用に設定されており、既定のポート 5986 はファイアウォールで既に開き、自己署名証明書がマシンにインストールされています。 これらの仮想マシンには、追加の構成を必要とせずアクセスできます。 既存のクラシック仮想マシンは、Azure リソース グループのデプロイ タスクを使用して選択することもできます。
Azure リソース グループ をします。 Azure リソース グループ が Azure portal で既に定義されている場合は、WinRM HTTPS プロトコルを使用するように構成する必要があります。 ファイアウォールでポート 5986 を開き、自己署名証明書をインストールする必要があります。
仮想マシンを含む Azure リソース グループを動的にデプロイするには、Azure リソース グループのデプロイ タスクを使用します。 このタスクには、展開の前提条件 を有効にするという名前のチェック ボックスがあります。 これを選択すると、仮想マシンに WinRM HTTPS プロトコルが自動的に設定され、ファイアウォールでポート 5986 が開き、テスト証明書がインストールされます。 その後、仮想マシンはデプロイ タスクで使用できる状態になります。
このタスク バージョンの新機能
- PSSession と invoke-command を使用して、ターゲット マシンでリモート処理を実行します。
- インライン スクリプト実行のサポートを追加しました。
- 既定の認証と CredSSP 認証がサポートされています。
- エラー処理のオプションを追加しました:標準エラー で
ErrorActionPreference
、ignoreLASTEXITCODE
、失敗。