Megosztás a következőn keresztül:


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 Linux-ügynökökhöz készült PowerShell Core-t, a Windows-ügynökökhöz pedig a Windows PowerShellt használja. A PowerShell legújabb verziójának Windows-ügynökökön való használatához állítsa a pwsh paramétert true. Ezután a PowerShell Core lesz használatban.

Szinopszis

# 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.

Bemenetek

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 szkriptjének típusát: beágyazott szkriptet vagy egy .ps1 fájl elérési útját.


filePath - szkriptútvonal
string. targetType = filePathesetén kötelező.

Megadja a végrehajtandó szkript elérési útját. Teljes elérési útnak vagy $(System.DefaultWorkingDirectory)relatívnek kell lennie.


arguments - argumentumok
string. Opcionális. Használja a targetType = filePath.

A PowerShell-szkriptnek átadott argumentumokat adja meg. Az argumentumok lehetnek sorszámparaméterek vagy elnevezett paraméterek. Például: -Name someName -Path -Value "Some long string value".

arguments nem használható, ha targetTypeinlinevan beállítva.


script - szkript
string. targetType = inlineesetén kötelező. Alapértelmezett érték: # Write your PowerShell commands here.\n\nWrite-Host "Hello World".

Megadja a szkript tartalmát. A maximálisan támogatott beágyazott szkripthossz 20000 karakter. Ha hosszabb szkriptet szeretne használni, használjon egy fájlból származó szkriptet.


errorActionPreference - ErrorActionPreference
string. Engedélyezett értékek: default, stop, continue. silentlyContinue Alapértelmezett érték: stop.

A szkript tetején $ErrorActionPreference = 'VALUE' sor előre fel van függve.


errorActionPreference - ErrorActionPreference
string. Engedélyezett értékek: stop, continue, silentlyContinue. Alapértelmezett érték: stop.

A szkript tetején $ErrorActionPreference = 'VALUE' sor előre fel van függve.


warningPreference - Figyelmeztetés
string. Engedélyezett értékek: default, stop, continue. silentlyContinue Alapértelmezett érték: default.

Ha nincs beállítva Default, a szkript tetején lévő $WarningPreference = 'VALUE' előre felerősít.


informationPreference - Információs preferencia
string. Engedélyezett értékek: default, stop, continue. silentlyContinue Alapértelmezett érték: default.

Ha nincs beállítva Default, a szkript tetején lévő $InformationPreference = 'VALUE' előre felerősít.


verbosePreference - RészletesElőnyben részesítés
string. Engedélyezett értékek: default, stop, continue. silentlyContinue Alapértelmezett érték: default.

Ha nincs beállítva Default, a szkript tetején lévő $VerbosePreference = 'VALUE' előre felerősít.


debugPreference - DebugPreference
string. Engedélyezett értékek: default, stop, continue. silentlyContinue Alapértelmezett érték: default.

Ha nincs beállítva Default, a szkript tetején lévő $DebugPreference = 'VALUE' előre felerősít.


progressPreference - ProgressPreference
string. Engedélyezett értékek: default, stop, continue. silentlyContinue Alapértelmezett érték: silentlyContinue.

Ha nincs beállítva Default, a szkript tetején lévő $ProgressPreference = 'VALUE' előre felerősít.


failOnStderr - Normál hiba
boolean. Alapértelmezett érték: false.

Ha ennek a logikai értéknek a értéke true, a feladat meghiúsul, ha bármilyen hiba a hibafolyamatba van írva, vagy ha az adatok a Standard hibafolyamba vannak írva. Ellenkező esetben a feladat a kilépési kódra támaszkodik a hiba megállapításához.


showWarnings - Figyelmeztetések megjelenítése Azure DevOps-figyelmeztetésként
boolean. Alapértelmezett érték: false.

Ha az érték trueértékre van állítva, és a szkript figyelmeztetéseket ír, akkor a figyelmeztetések figyelmeztetésként jelennek meg a folyamatnaplókban.


ignoreLASTEXITCODE - $LASTEXITCODE figyelmen kívül hagyása
boolean. Alapértelmezett érték: false.

Ha az érték falseértékre van állítva, a if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } sor hozzá lesz fűzve a szkript végéhez. Ez azt eredményezi, hogy egy külső parancs utolsó kilépési kódja a powershellkilépési kódjaként lesz propagálva. Ellenkező esetben a program nem fűzi hozzá a sort a szkript végéhez.


pwsh - PowerShell Core használata
boolean. Alapértelmezett érték: false.

Ha ez igaz, akkor a Windows-ügynökökön futó feladatok pwsh.exe fognak használni az elérési útból powershell.exehelyett.


workingDirectory - Munkakönyvtár
string.

Azt a munkakönyvtárat adja meg, ahol a szkript fut. Ha nincs megadva érték, a munkakönyvtár $(Build.SourcesDirectory).


runScriptInSeparateScope - Szkript futtatása külön hatókörben
boolean. Alapértelmezett érték: false.

Ez a bemenet lehetővé teszi a PowerShell-szkriptek & operátorral való végrehajtását az alapértelmezett .helyett. Ha ez a bemenet trueértékre van állítva, a szkript végrehajtása külön hatókörben történik, é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ők és gyakori feladattulajdonságok.

Kimeneti változók

Nincs.

Megjegyzések

Minden PowerShell-munkamenet csak annak a feladatnak az időtartamára tart, amelyben fut. A rendszerindítástól függő feladatoknak ugyanabban a feladatban kell lenniük, mint a bootstrap.

Feladat-billentyűparancsok

PowerShell@2 két parancsikont tartalmaz a YAML-ben: steps.powershell és steps.pwsh.

  • powershell Windows PowerShell vagy pwsh (Linux és macOS) használatával fut.
  • pwsh futtatja a PowerShell Core-t, a .NET Core-ra épülő PowerShell platformfüggetlen kiadását.
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.

Beállíthat egy változót, hogy a későbbi szkriptek és feladatok beolvashassák

A buildváltozók parancsfájlokban való definiálásáról további információt A buildváltozók definiálása és módosítása parancsfájlokbancímű témakörben talál.

Ha többet szeretne megtudni a kiadási változók szkriptben való definiálásáról, olvassa el A kiadási változók definiálása és módosítása parancsfájlokban.

A folyamat titkos kulcsainak átadása szkriptben, de a titkos kód nem maszkolva van a folyamatnaplókban

Vegye figyelembe, hogy a PowerShell kikapcsolja a hibaüzeneteket, ezért ha folyamat titkos kódokat használ egy szkriptben, a titkos kulcsokat 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>

Lehet egy kivétel, például: 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 hibaüzenetek forráskódsoraiban.

Példák

Parancsfájl meghívása fájlból

Az alábbiakban egy test.ps1 nevű PowerShell-mintafájl található az adattár gyökerében.

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 a buildelés során, adjon hozzá exit 1 a szkripthez.

- 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 létrehozása test2.ps1:

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 bekapcsolva Ügynök, DeploymentGroup
Követelmények Egyik sem
képességek Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
parancskorlátozások Bármely
Változók beállítása Bármely
Ügynök verziója 2.115.0 vagy újabb
Tevékenységkategória Hasznosság

Lásd még