次の方法で共有


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が にinline設定されている場合targetTypeは、 は使用されません。


workingFolder - 作業フォルダー
string.

スクリプトを実行する作業ディレクトリを指定します。 値が指定されていない場合、作業ディレクトリは です $(Build.SourcesDirectory)


inlineScript - インライン スクリプト
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
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 1.102 以上
タスクのカテゴリ ユーティリティ

関連項目