PowerShell@2 – PowerShell v2-uppgift
Använd den här uppgiften för att köra ett PowerShell-skript på Linux, macOS eller Windows.
Anteckning
Som standard använder PowerShell v2 PowerShell Core för Linux-agenter och Windows PowerShell för Windows-agenter. Om du vill använda den senaste versionen av PowerShell på Windows-agenter anger du parametern pwsh
till true
. PowerShell Core används sedan i stället.
Syntax
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Preference Variables
#errorActionPreference: 'stop' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#warningPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. WarningPreference. Default: default.
#informationPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. InformationPreference. Default: default.
#verbosePreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. VerbosePreference. Default: default.
#debugPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. DebugPreference. Default: default.
#progressPreference: 'silentlyContinue' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ProgressPreference. Default: silentlyContinue.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
#runScriptInSeparateScope: false # boolean. Run script in the separate scope. Default: false.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
# Preference Variables
#errorActionPreference: 'stop' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
#warningPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. WarningPreference. Default: default.
#informationPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. InformationPreference. Default: default.
#verbosePreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. VerbosePreference. Default: default.
#debugPreference: 'default' # 'default' | 'stop' | 'continue' | 'silentlyContinue'. DebugPreference. Default: default.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
#runScriptInSeparateScope: false # boolean. Run script in the separate scope. Default: false.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#showWarnings: false # boolean. Show warnings as Azure DevOps warnings. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
# PowerShell v2
# Run a PowerShell script on Linux, macOS, or Windows.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
# PowerShell v2
# Run a PowerShell script on Windows, macOS, or Linux.
- task: PowerShell@2
inputs:
#targetType: 'filePath' # 'filePath' | 'inline'. Type. Default: filePath.
filePath: # string. Required when targetType = filePath. Script Path.
#arguments: # string. Optional. Use when targetType = filePath. Arguments.
#script: # string. Required when targetType = inline. Script.
#errorActionPreference: 'stop' # 'stop' | 'continue' | 'silentlyContinue'. ErrorActionPreference. Default: stop.
# Advanced
#failOnStderr: false # boolean. Fail on Standard Error. Default: false.
#ignoreLASTEXITCODE: false # boolean. Ignore $LASTEXITCODE. Default: false.
#pwsh: false # boolean. Use PowerShell Core. Default: false.
#workingDirectory: # string. Working Directory.
Indata
targetType
- Typ
string
. Tillåtna värden: filePath
(Filsökväg), inline
. Standardvärde: filePath
.
Anger typ av skript för aktiviteten som ska köras: ett infogat skript eller en sökväg till en .ps1
fil.
filePath
- Skriptsökväg
string
. Krävs när targetType = filePath
.
Anger sökvägen till skriptet som ska köras. Måste vara en fullständigt kvalificerad sökväg eller i förhållande till $(System.DefaultWorkingDirectory)
.
arguments
- Argument
string
. Valfritt. Använd när targetType = filePath
.
Anger de argument som skickas till PowerShell-skriptet. Argument kan vara ordningsparametrar eller namngivna parametrar. Till exempel -Name someName -Path -Value "Some long string value"
.
arguments
används inte när targetType
är inställt på inline
.
script
- Skript
string
. Krävs när targetType = inline
. Standardvärde: # Write your PowerShell commands here.\n\nWrite-Host "Hello World"
.
Anger innehållet i skriptet. Den maximala längden för infogade skript som stöds är 2 0000 tecken. Använd ett skript från en fil om du vill använda ett längre skript.
script
- Skript
string
. Krävs när targetType = inline
. Standardvärde: # Write your powershell commands here.\n\nWrite-Host "Hello World"\n\n# Use the environment variables input below to pass secret variables to this script.
.
Anger innehållet i skriptet. Den maximala längden för infogade skript som stöds är 2 0000 tecken. Använd ett skript från en fil om du vill använda ett längre skript.
errorActionPreference
- ErrorActionPreference
string
. Tillåtna värden: default
, stop
, continue
, silentlyContinue
. Standardvärde: stop
.
Förbereder raden $ErrorActionPreference = 'VALUE'
överst i skriptet.
errorActionPreference
- ErrorActionPreference
string
. Tillåtna värden: stop
, continue
, silentlyContinue
. Standardvärde: stop
.
Förbereder raden $ErrorActionPreference = 'VALUE'
överst i skriptet.
warningPreference
- WarningPreference
string
. Tillåtna värden: default
, stop
, continue
, silentlyContinue
. Standardvärde: default
.
När den inte är inställd Default
på förbereder du raden $WarningPreference = 'VALUE'
överst i skriptet.
informationPreference
- InformationPreference
string
. Tillåtna värden: default
, stop
, continue
, silentlyContinue
. Standardvärde: default
.
När den inte är inställd Default
på förbereder du raden $InformationPreference = 'VALUE'
överst i skriptet.
verbosePreference
- Utförlig förkastning
string
. Tillåtna värden: default
, stop
, continue
, silentlyContinue
. Standardvärde: default
.
När den inte är inställd Default
på förbereder du raden $VerbosePreference = 'VALUE'
överst i skriptet.
debugPreference
- DebugPreference
string
. Tillåtna värden: default
, stop
, continue
, silentlyContinue
. Standardvärde: default
.
När den inte är inställd Default
på förbereder du raden $DebugPreference = 'VALUE'
överst i skriptet.
progressPreference
- ProgressPreference
string
. Tillåtna värden: default
, stop
, continue
, silentlyContinue
. Standardvärde: silentlyContinue
.
När den inte är inställd Default
på förbereder du raden $ProgressPreference = 'VALUE'
överst i skriptet.
failOnStderr
- Fel vid standardfel
boolean
. Standardvärde: false
.
Om värdet för det här booleska värdet är true
misslyckas aktiviteten om några fel skrivs till felpipelinen eller om några data skrivs till standardfelströmmen. Annars förlitar sig uppgiften på slutkoden för att fastställa felet.
showWarnings
- Visa varningar som Azure DevOps-varningar
boolean
. Standardvärde: false
.
Om värdet är inställt på true
och skriptet skriver varningar visas varningarna som varningar i pipelineloggarna.
ignoreLASTEXITCODE
- Ignorera $LASTEXITCODE
boolean
. Standardvärde: false
.
Om värdet är inställt på false
läggs raden if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
till i slutet av skriptet. Detta gör att den senaste slutkoden från ett externt kommando sprids som slutkod powershell
för . Annars läggs inte raden till i slutet av skriptet.
pwsh
- Använda PowerShell Core
boolean
. Standardvärde: false
.
Om detta är sant används pwsh.exe
uppgifter som körs på Windows-agenter från din sökväg i stället för powershell.exe
.
workingDirectory
- Arbetskatalog
string
.
Anger arbetskatalogen där skriptet körs. Om inget värde anges är $(Build.SourcesDirectory)
arbetskatalogen .
runScriptInSeparateScope
- Köra skriptet i det separata omfånget
boolean
. Standardvärde: false
.
Med dessa indata kan du köra PowerShell-skript med operatorn &
i stället för standardinställningen .
. Om dessa indata är inställda på true
körs skriptet i ett separat omfång och globalt begränsade PowerShell-variabler uppdateras inte.
Kontrollalternativ för aktivitet
Alla aktiviteter har kontrollalternativ utöver sina aktivitetsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Inga.
Kommentarer
Varje PowerShell-session varar bara under hela jobbet som den körs i. Uppgifter som är beroende av vad som har bootstrappats måste finnas i samma jobb som bootstrap-metoden.
Genvägar till aktiviteter
PowerShell@2
har två genvägar i YAML: steps.powershell och steps.pwsh.
powershell
körs med antingen Windows PowerShell (i Windows) ellerpwsh
(Linux och macOS).pwsh
kör PowerShell Core, den plattformsoberoende versionen av PowerShell som bygger på .NET Core.
steps:
- powershell: # Run a script in Windows PowerShell on Windows, and pwsh on Linux and macOS.
- pwsh: # Run a script in PowerShell Core on Windows, macOS, and Linux.
Ange en variabel så att den kan läsas av efterföljande skript och uppgifter
Mer information om hur du definierar byggvariabler i ett skript finns i Definiera och ändra dina byggvariabler i ett skript.
Mer information om hur du definierar versionsvariabler i ett skript finns i Definiera och ändra dina versionsvariabler i ett skript.
Skicka pipelinehemligheter i skript, men hemligheten maskeras inte i pipelineloggar
Tänk på att PowerShell stänger av felmeddelanden, så om du använder pipelinehemligheter i ett skript kan hemligheterna trimmas och exponeras. I det infogade skriptet nedan:
./script.ps1 --arg1 value1 --arg2 <some_secret_which_will_be_masked_here>
Det kan finnas ett undantag som: At <path_to_temp_script_file>:4 char:3
+ ./script.ps1 --arg1 value1 --arg2 <unmasked_part_of_original_secret> ...
+ ~~~~~~~~~~
+ <Additional exception details>
För att undvika det här problemet kan du hantera dessa undantag på skriptnivå eller undvika fall då pipelinehemligheter kan visas i källkodsrader i felmeddelanden.
Exempel
- Anropa ett skript från en fil
- Skriva en varning
- Skriva ett fel
- Anropa PowerShell-skript med flera argument
Anropa ett skript från en fil
Följande är en PowerShell-exempelfil med namnet test.ps1
i databasens rot.
Write-Host "Hello World from $Env:AGENT_NAME."
Write-Host "My ID is $Env:AGENT_ID."
Write-Host "AGENT_WORKFOLDER contents:"
gci $Env:AGENT_WORKFOLDER
Write-Host "AGENT_BUILDDIRECTORY contents:"
gci $Env:AGENT_BUILDDIRECTORY
Write-Host "BUILD_SOURCESDIRECTORY contents:"
gci $Env:BUILD_SOURCESDIRECTORY
Write-Host "Over and out."
Du kan anropa det här skriptet i pipelinen så här.
steps:
- task: PowerShell@2
inputs:
targetType: 'filePath'
filePath: 'test.ps1'
Skriva en varning
- task: PowerShell@2
inputs:
targetType: 'inline'
script: Write-Host "##vso[task.LogIssue type=warning;]This is the warning"
# Writes a warning to build summary and to log in yellow text
Skriva ett fel
- task: PowerShell@2
inputs:
targetType: 'inline'
script: Write-Host "##vso[task.LogIssue type=error;]This is the error"
# Writes an error to build summary and to log in red text
Om du vill att det här felet ska misslyckas med bygget lägger du till exit 1
i skriptet.
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
Write-Host "##vso[task.LogIssue type=error;]This is the error"
exit 1
# Writes an error to build summary and to log in red text
Anropa PowerShell-skript med flera argument
Skapa PowerShell-skript test2.ps1
:
param ($input1, $input2)
Write-Host "$input1 $input2"
I yaml-pipelinen anropar du:
- task: PowerShell@2
inputs:
targetType: 'filePath'
filePath: $(System.DefaultWorkingDirectory)\test2.ps1
arguments: > # Use this to avoid newline characters in multiline string
-input1 "Hello"
-input2 "World"
displayName: 'Print Hello World'
Krav
Krav | Beskrivning |
---|---|
Pipelinetyper | YAML, klassisk version, klassisk version |
Körs på | Agent, DeploymentGroup |
Krav | Ingen |
Funktioner | Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Valfri |
Inställningsbara variabler | Valfri |
Agentversion | 2.115.0 eller senare |
Uppgiftskategori | Verktyg |