PowerShell@2에서 사용되는 PowerShell 버전 변경 - Azure DevOps Tricks #1

2318 단어 devopspowershellazure
ConvertFrom-Json -Depth 20를 사용하여 DevOps 파이프라인의 PowerShell@2 작업에서 JSON 파일을 로드할 때 파이프라인 문제가 발생했습니다. -Depth 매개변수에서 오류가 발생했습니다.

ConvertFrom-Json : A parameter cannot be found that matches parameter name 'Depth'
Error message


ConvertFrom-Json 문서는 무엇을 말합니까?



  • PowerShell 5.1
  • 매개변수를 나열하지 않습니다-Depth.


  • PowerShell 7 (LTS)
  • -Depth : JSON 입력이 가질 수 있는 최대 깊이를 가져오거나 설정합니다. 기본적으로 1024입니다. 이 매개 변수는 PowerShell 6.2에서 도입되었습니다.


  • PowerShell@2는 어떤 버전의 PowerShell을 사용하고 있습니까?



    참고: 작업을 실행하는 에이전트에 따라 다를 수 있습니다.

    버전을 얻기 위해 스크립트에 한 줄을 추가했습니다.

       Write-Host "Version: ($PSVersionTable.PSVersion)"
    Extra line to show PowerShell version


    산출:

       Version: 5.1.17763.1852
    PowerShell Version running on the Agent


    버전을 어떻게 변경합니까?



    이 작은 조각을 사용하면 PowerShell@2 작업에 정의된 스크립트를 특정 버전의 PowerShell에서 다시 시작할 수 있습니다.

        if ($PSVersionTable.PSVersion -lt [Version]"7.0") {
            Write-Host "Version: $($PSVersionTable.PSVersion)"
            Write-Host "Re-launching as pwsh"
            pwsh -File $MyInvocation.MyCommand.Definition
            exit
        }
    
    From StackOverflow.


    특정 버전을 원하는 경우 몇 가지 다른 옵션이 있습니다.

        powershell -Version 2 -File $MyInvocation.MyCommand.Definition
    
    Specify a specific version of powershell

    좋은 웹페이지 즐겨찾기