PowerShell@2 – PowerShell v2-feladat
Ezzel a feladatsal PowerShell-szkriptet futtathat Linux, macOS vagy Windows rendszeren.
Megjegyzés
A PowerShell v2 alapértelmezés szerint a PowerShell Core-t használja Linux-ügynökökhöz és Windows PowerShell Windows-ügynökökhöz. A PowerShell legújabb verziójának windowsos ügynökökön való használatához állítsa a paramétert a pwsh
értékre true
. Ezután a PowerShell Core lesz használatban.
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.
Bevitelek
targetType
- Típus
string
. Engedélyezett értékek: filePath
(Fájl elérési útja), inline
. Alapértelmezett érték: filePath
.
Megadja a futtatandó feladat szkripttípusát: beágyazott szkriptet vagy egy .ps1
fájl elérési útját.
filePath
- Szkript elérési útja
string
. Akkor szükséges, ha targetType = filePath
.
Megadja a végrehajtandó szkript elérési útját. Teljes elérési útnak kell lennie, vagy a következőhöz viszonyítva: $(System.DefaultWorkingDirectory)
.
arguments
- Érvek
string
. Választható. Használja a következőt: targetType = filePath
.
Megadja a PowerShell-szkriptnek átadott argumentumokat. Az argumentumok lehetnek sorszámparaméterek vagy névvel ellátott paraméterek. Például: -Name someName -Path -Value "Some long string value"
.
arguments
nem használatos, ha targetType
a értéke inline
.
script
- Script
string
. Akkor szükséges, ha targetType = inline
. Alapértelmezett érték: # Write your PowerShell commands here.\n\nWrite-Host "Hello World"
.
Megadja a szkript tartalmát. A maximális támogatott beágyazott szkripthossz 20000 karakter. Használjon szkriptet egy fájlból, ha hosszabb szkriptet szeretne használni.
script
- Script
string
. Akkor szükséges, ha targetType = inline
. Alapértelmezett érték: # 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.
.
Megadja a szkript tartalmát. A maximális támogatott beágyazott szkripthossz 20000 karakter. Használjon szkriptet egy fájlból, ha hosszabb szkriptet szeretne használni.
errorActionPreference
- ErrorActionPreference
string
. Engedélyezett értékek: default
, stop
, continue
, silentlyContinue
. Alapértelmezett érték: stop
.
Előre felerősít egy sort $ErrorActionPreference = 'VALUE'
a szkript tetején.
errorActionPreference
- ErrorActionPreference
string
. Engedélyezett értékek: stop
, continue
, silentlyContinue
. Alapértelmezett érték: stop
.
Előre felerősít egy sort $ErrorActionPreference = 'VALUE'
a szkript tetején.
warningPreference
- FigyelmeztetésElőzvény
string
. Engedélyezett értékek: default
, stop
, continue
, silentlyContinue
. Alapértelmezett érték: default
.
Ha nincs beállítva, Default
akkor a szkript tetején lévő sor $WarningPreference = 'VALUE'
előtagja lesz.
informationPreference
- InformationPreference
string
. Engedélyezett értékek: default
, stop
, continue
, silentlyContinue
. Alapértelmezett érték: default
.
Ha nincs beállítva, Default
akkor a szkript tetején lévő sor $InformationPreference = 'VALUE'
előtagja lesz.
verbosePreference
- VerbosePreference
string
. Engedélyezett értékek: default
, stop
, continue
, silentlyContinue
. Alapértelmezett érték: default
.
Ha nincs beállítva, Default
akkor a szkript tetején lévő sor $VerbosePreference = 'VALUE'
előtagja lesz.
debugPreference
- Hibakeresésipreferencia
string
. Engedélyezett értékek: default
, stop
, continue
, silentlyContinue
. Alapértelmezett érték: default
.
Ha nincs beállítva, Default
akkor a szkript tetején lévő sor $DebugPreference = 'VALUE'
előtagja lesz.
progressPreference
- ProgressPreference
string
. Engedélyezett értékek: default
, stop
, continue
, silentlyContinue
. Alapértelmezett érték: silentlyContinue
.
Ha nincs beállítva, Default
akkor a szkript tetején lévő sor $ProgressPreference = 'VALUE'
előtagja lesz.
failOnStderr
- Hiba standard hiba miatt
boolean
. Alapértelmezett érték: false
.
Ha ennek a logikai true
értéknek az értéke , a feladat meghiúsul, ha bármilyen hibát a hibafolyamatba ír, vagy ha bármilyen adat a Standard hibafolyamba van írva. Ellenkező esetben a feladat a kilépési kódra támaszkodik a hiba meghatározásához.
showWarnings
- Figyelmeztetések megjelenítése Azure DevOps-figyelmeztetésként
boolean
. Alapértelmezett érték: false
.
Ha az érték a értékre true
van állítva, és a szkript figyelmeztetéseket ír, akkor a figyelmeztetések figyelmeztetésként jelennek meg a folyamatnaplókban.
ignoreLASTEXITCODE
- $LASTEXITCODE mellőzése
boolean
. Alapértelmezett érték: false
.
Ha az érték értékre false
van állítva, a program hozzáfűzi a sort if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE }
a szkript végéhez. Ez azt eredményezi, hogy egy külső parancs utolsó kilépési kódja a kilépési powershell
kódként lesz propagálva. Ellenkező esetben a program nem fűzi hozzá a sort a szkript végéhez.
pwsh
- A PowerShell Core használata
boolean
. Alapértelmezett érték: false
.
Ha ez igaz, akkor a Windows-ügynökökön futó feladatok az elérési útból lesznek használva pwsh.exe
a helyett powershell.exe
.
workingDirectory
- Munkakönyvtár
string
.
Megadja azt a munkakönyvtárat, amelyen a szkript fut. Ha nincs megadva érték, a munkakönyvtár a következő $(Build.SourcesDirectory)
: .
runScriptInSeparateScope
- Szkript futtatása külön hatókörben
boolean
. Alapértelmezett érték: false
.
Ez a bemenet lehetővé teszi PowerShell-szkriptek futtatását operátorral &
az alapértelmezett .
helyett. Ha ezt a bemenetet a értékre true
állítja, a szkript egy külön hatókörben lesz végrehajtva, és a globális hatókörű PowerShell-változók nem frissülnek.
Feladatvezérlési lehetőségek
Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlési beállítások és gyakori feladattulajdonságok.
Kimeneti változók
Nincsenek.
Megjegyzések
Minden PowerShell-munkamenet csak annak a feladatnak az időtartamára tart, amelyben fut. A rendszerindítótól függő feladatoknak ugyanabban a feladatban kell lenniük, mint a bootstrapnak.
Feladat billentyűparancsai
PowerShell@2
két parancsikont tartalmaz a YAML-ben: steps.powershell és steps.pwsh.
powershell
Windows PowerShell (Windows rendszeren) vagypwsh
(Linux és macOS) használatával fut.pwsh
Futtatja a PowerShell Core-t, a PowerShell platformfüggetlen kiadását, amely a .NET Core-ra épül.
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.
Állítson be egy változót, hogy az a későbbi szkriptek és feladatok alapján olvasható legyen
A buildváltozók szkriptben való definiálásáról további információt A buildváltozók definiálása és módosítása szkriptben című témakörben talál.
A kiadási változók szkriptben való definiálásáról további információt a Kiadási változók definiálása és módosítása szkriptben című témakörben talál.
A folyamat titkos kulcsainak átadása szkriptben, de a titkos kód nem maszkolva van a folyamatnaplókban
Vegye figyelembe, hogy a PowerShell levágja a hibaüzeneteket, így ha folyamat titkos kódokat használ egy szkriptben, a titkos kódokat levághatja és közzéteheti. Például az alábbi beágyazott szkriptben:
./script.ps1 --arg1 value1 --arg2 <some_secret_which_will_be_masked_here>
A következőhöz hasonló kivétel lehet: At <path_to_temp_script_file>:4 char:3
+ ./script.ps1 --arg1 value1 --arg2 <unmasked_part_of_original_secret> ...
+ ~~~~~~~~~~
+ <Additional exception details>
A probléma elkerülése érdekében szkriptszinten kezelheti ezeket a kivételeket, vagy elkerülheti azokat az eseteket, amikor a folyamat titkos kódjai megjelenhetnek a forráskódsorokban a hibaüzenetekben.
Példák
- Parancsfájl meghívása fájlból
- Figyelmeztetés írása
- Hiba írása
- PowerShell-szkript meghívása több argumentummal
Parancsfájl meghívása fájlból
Az alábbi minta PowerShell-fájl test.ps1
az adattár gyökerében található.
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."
Ezt a szkriptet így hívhatja meg a folyamatban.
steps:
- task: PowerShell@2
inputs:
targetType: 'filePath'
filePath: 'test.ps1'
Figyelmeztetés írása
- 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
Hiba írása
- 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
Ha azt szeretné, hogy ez a hiba meghiúsuljon, adja hozzá exit 1
a szkriptet.
- 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
PowerShell-szkript meghívása több argumentummal
PowerShell-szkript test2.ps1
létrehozása:
param ($input1, $input2)
Write-Host "$input1 $input2"
A YAML-folyamatban hívja meg a következőt:
- 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'
Követelmények
Követelmény | Leírás |
---|---|
Folyamattípusok | YAML, klasszikus build, klasszikus kiadás |
Futtatás | Ügynök, DeploymentGroup |
Igények | None |
Képességek | Ez a feladat nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek. |
Parancskorlátozások | Bármelyik |
Változók beállítása | Bármelyik |
Ügynök verziója | 2.115.0 vagy újabb |
Feladatkategória | Segédprogram |
Lásd még
- Folyamat testreszabása PowerShell-szkripttel – ApplyVersionToAssemblies.ps1
- További információ a PowerShell-szkriptekről