PowerShell@1 - PowerShell v1 タスク
PowerShell スクリプトを実行します。
構文
# PowerShell v1
# Run a PowerShell script.
- task: PowerShell@1
inputs:
scriptType: 'filePath' # 'inlineScript' | 'filePath'. Required. Type. Default: filePath.
scriptName: # string. Required when scriptType = filePath. Script Path.
#arguments: # string. Arguments.
#inlineScript: # string. Required when scriptType = inlineScript. Inline Script.
# Advanced
#workingFolder: # string. Working folder.
#failOnStandardError: true # boolean. Fail on Standard Error. Default: true.
入力
scriptType
-
型の
string
. 必須。 使用できる値: inlineScript
(インライン スクリプト)、filePath
(ファイル パス)。 既定値: filePath
.
実行するタスクのスクリプトの種類 (インライン スクリプトまたは .ps1
ファイルへのパス) を指定します。
scriptName
-
スクリプト パスの
string
.
scriptType = filePath
する場合に必要です。
実行するタスクのスクリプトの種類 (インライン スクリプトまたは .ps1
ファイルへのパス) を指定します。
arguments
-
引数
string
.
PowerShell スクリプトに渡される引数を指定します。 引数には、序数パラメーターまたは名前付きパラメーターを指定できます。 たとえば、-Name someName -Path -Value "Some long string value"
のようにします。
arguments
は、targetType
が inline
に設定されている場合は使用されません。
workingFolder
-
作業フォルダーの
string
.
スクリプトを実行する作業ディレクトリを指定します。 値が指定されていない場合、作業ディレクトリは $(Build.SourcesDirectory)
。
インライン スクリプト の
string
.
scriptType = inlineScript
する場合に必要です。 既定値: # You can write your powershell scripts inline here. \n# You can also pass predefined and custom variables to this scripts using arguments\n\n Write-Host "Hello World"
.
スクリプトの内容を指定します。 サポートされるインライン スクリプトの最大長は 500 文字です。 より長いスクリプトを使用する場合は、ファイルのスクリプトを使用します。
標準エラーで失敗する failOnStandardError
-
boolean
. 既定値: true
.
このブール値の値が true
の場合、エラーがエラー パイプラインに書き込まれた場合、または標準エラー ストリームにデータが書き込まれた場合、タスクは失敗します。 それ以外の場合、タスクは終了コードに依存してエラーを判断します。
タスク コントロールのオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。
出力変数
なし。
注釈
PowerShell@1
は Windows エージェントでのみ実行されます。 他の種類のエージェントで PowerShell を実行するには、PowerShell@2を使用します。
各 PowerShell セッションは、実行されるジョブの期間中のみ継続します。 ブートストラップされた内容に依存するタスクは、ブートストラップと同じジョブ内にある必要があります。
後続のスクリプトやタスクで読み取ることができるように変数を設定する
スクリプトでビルド変数を定義する方法の詳細については、「スクリプトでビルド変数を定義および変更する」を参照してください。
スクリプトでのリリース変数の定義の詳細については、「スクリプトでリリース変数を定義および変更する」を参照してください。
スクリプトでパイプライン シークレットを渡すが、パイプライン ログでシークレットがマスクされない
PowerShell はエラー メッセージを遮断するので、スクリプトでパイプライン シークレットを使用すると、シークレットがトリミングされて公開される可能性があることに注意してください。 たとえば、次のインライン スクリプトでは次のようになります。
./script.ps1 --arg1 value1 --arg2 <some_secret_which_will_be_masked_here>
次のような例外が発生する可能性があります: At <path_to_temp_script_file>:4 char:3
:
+ ./script.ps1 --arg1 value1 --arg2 <unmasked_part_of_original_secret> ...
+ ~~~~~~~~~~
+ <Additional exception details>
この問題を回避するには、スクリプト レベルでこれらの例外を処理するか、エラー メッセージ内のソース コード行にパイプライン シークレットが表示される場合を回避できます。
必要条件
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド、クラシック リリース |
実行日 | エージェント、DeploymentGroup |
の需要 | セルフホステッド エージェントには、このタスクを使用するジョブを実行するための 要求 に一致する 機能 が必要です。DotNetFramework |
機能の | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | どれでも |
設定可能な変数 | どれでも |
エージェントのバージョン | 1.102 以上 |
タスク カテゴリ | 効用 |
こちらもご覧ください
- PowerShell スクリプトを使用してパイプラインをカスタマイズする - ApplyVersionToAssemblies.ps1
- PowerShell スクリプトの詳細
- Windows PowerShell を使用したスクリプトの
- Microsoft スクリプト センター (Scripting Guys)
- PowerShell.org