PowerShell 7.2의 새로운 기능

PowerShell 7.2는 .NET 6.0을 기반으로 하는 다음 LTS(장기 서비스) 릴리스입니다.

PowerShell 7.2에는 다음과 같은 기능, 업데이트 및 호환성이 손상되는 변경 내용이 포함되어 있습니다.

  • 지원되는 대부분의 Linux 배포판에 대한 새로운 유니버설 설치 관리자 패키지
  • Windows에서 Microsoft 업데이트 지원
  • 2개의 새로운 실험적 기능
    • 지원 전달 네이티브 명령 인수 개선
    • ANSI FileInfo 색 지원
  • 향상된 탭 완성
  • 예측 IntelliSense를 사용하는 PSReadLine 2.1
  • 7개의 실험적 기능이 기본stream으로 승격되고 1개는 제거됨
  • 향후 개선이 가능하도록 PowerShell 7에서 DSC 분리
  • 유용성 향상을 위한 몇 가지 호환성이 손상되는 변경

전체 변경 목록은 GitHub 리포지토리의 변경 로그 를 참조하세요.

설치 업데이트

원하는 운영 체제에 대한 설치 지침을 확인합니다.

또한 PowerShell 7.2은 Windows 및 macOS의 ARM64 버전과 Debian 및 Ubuntu의 ARM32 및 ARM64 버전을 지원합니다.

지원되는 운영 체제 및 지원 주기에 대한 최신 정보는 PowerShell 지원 수명 주기를 참조하세요.

Linux 배포판용 새 유니버설 설치 패키지

이전에는 지원되는 각 버전의 CentOS, RHEL, Debian 및 Ubuntu에 대해 별도의 설치 관리자 패키지를 만들었습니다. 유니버설 설치 관리자 패키지는 8개의 서로 다른 패키지를 하나로 결합하여 Linux에 더 간단하게 설치할 수 있습니다. 유니버설 패키지는 대상 배포에 필요한 종속성을 설치하고 PowerShell이 작동하도록 플랫폼별 변경 내용을 만듭니다.

Windows용 Microsoft 업데이트 지원

PowerShell 7.2에서는 Microsoft 업데이트에 대한 지원이 추가되었습니다. 이 기능을 사용하도록 설정하면 비즈니스용 Windows 업데이트 또는 WSUS, SCCM, 설정의 대화형 WU 대화 상자 관계없이 기존 WU(Windows 업데이트) 관리 흐름에서 최신 PowerShell 7 업데이트를 가져올 수 있습니다.

PowerShell 7.2 MSI 패키지에는 다음과 같은 명령줄 옵션이 포함되어 있습니다.

  • USE_MU - 이 속성에는 다음 두 가지 가능한 값이 있습니다.
    • 1 (기본값) - Microsoft 업데이트 또는 WSUS를 통해 업데이트 옵트인
    • 0 - Microsoft 업데이트 또는 WSUS를 통한 업데이트를 옵트인하지 않습니다.
  • ENABLE_MU
    • 1(기본값) - Microsoft 업데이트 자동 업데이트 또는 Windows 업데이트
    • 0 - Microsoft Update를 사용한 자동 업데이트 또는 Windows 업데이트를 옵트인하지 않습니다.

실험적 기능

이제 다음 실험적 기능은 이 릴리스의 기본stream 기능입니다.

  • Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck- Import-PowerShellDataFile 참조
  • Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
  • PSAnsiRendering - about_ANSI_Terminals 참조
  • PSAnsiProgress - about_ANSI_Terminals 참조
  • PSCultureInvariantReplaceOperator
  • PSNotApplyErrorActionToStderr
  • PSUnixFileStat

이 릴리스에는 다음과 같은 실험적 기능이 추가되었습니다.

  • PSNativeCommandArgumentPassing - 이 실험적 기능을 사용하도록 설정된 경우 PowerShell은 네이티브 실행 파일을 호출할 때 문자열을 재구성하는 현재 메커니즘 대신 StartProcessInfo 개체의 ArgumentList 속성을 사용합니다. 이 기능은 런타임에 동작을 선택할 수 있는 새 자동 변수 $PSNativeCommandArgumentPassing 를 추가합니다.

  • PSAnsiRenderingFileInfo - 파일 정보의 ANSI 색 사용자 지정을 허용합니다.

  • PSLoadAssemblyFromNativeCode - 네이티브 코드에서 어셈블리를 로드할 수 있도록 API를 노출합니다.

실험적 기능에 대한 자세한 내용은 실험적 기능 사용을 참조하세요.

향상된 탭 완성

PowerShell 7.2에서는 탭 완성 기능이 향상되었습니다. 이러한 변경 내용에는 버그 수정 및 유용성 향상이 포함됩니다.

  • 지역화되지 않은 about* 주제에 대한 탭 완성 기능을 수정(#15265) (@MartinGC94)에게 감사드립니다.)
  • 완성 기능에서 위치 매개 변수로 처리되는 스플래팅을 수정(#14623) (@MartinGC94)에게 감사드립니다.)
  • 설명 기반 도움말 키워드에 대한 완성 기능 추가(#15337) (@MartinGC94)에게 감사드립니다.)
  • Requires 문에 대한 완성 기능 추가(#14596) (@MartinGC94)에게 감사드립니다.)
  • Format-* cmdlet의 보기 매개 변수에 대한 완성 기능 추가(#14513) (@iSazonov)에게 감사드립니다.)

PSReadLine 2.1 예측 IntelliSense

PSReadLine 2.1에서는 명령줄 완성에 예측을 제공하기 위한 프레임워크를 설정하는 CommandPrediction API를 도입했습니다. API를 사용하면 사용자가 사용자의 기록에서 일치하는 예측을 기반으로 전체 명령을 검색, 편집 및 실행할 수 있습니다.

예측 IntelliSense는 기본적으로 사용하지 않도록 설정됩니다. 예측을 사용하도록 설정하려면 다음 명령을 실행합니다.

Set-PSReadLineOption -PredictionSource History

향후 개선이 가능하도록 PowerShell 7에서 DSC 분리

PSDesiredStateConfiguration 모듈이 PowerShell 7.2 패키지에서 제거되었으며 이제 PowerShell 갤러리 게시됩니다. 이렇게 하면 PSDesiredStateConfiguration 모듈을 PowerShell과 독립적으로 개발할 수 있으며 사용자는 해당 환경에 대해 PowerShell 및 PSDesiredStateConfiguration 버전을 혼합하고 일치시킬 수 있습니다. PowerShell 갤러리 PSDesiredStateConfiguration 2.0.5를 설치하려면 다음을 수행합니다.

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Important

MaximumVersion 매개 변수를 포함하거나 상당한 차이가 포함된 PSDesireStateConfiguration 버전 3 이상을 설치할 수 있습니다.

엔진 업데이트

  • 절전 모드 해제를 통해 네이티브 PowerShell 호스트에서 메모리에 어셈블리를 로드하는 함수 추가 LoadAssemblyFromNativeMemory · 끌어오기 요청 #14652

호환성이 손상되는 변경 및 개선 사항

  • PSDesiredStateConfiguration을 PowerShell 7.2 패키지에서 제거
  • PowerShell Linux deb 및 RPM 패키지를 범용화(#15109)
  • 실험적 기능 PSNativeCommandArgumentPassing: 네이티브 실행 파일 호출에 ArgumentList 사용(#14692)
  • 스크립트 cmdlet의 모든 출력에 대해 설정되었는지 확인 -PipelineVariable (#12766)
  • -Depth 값을 초과하는 경우 ConvertTo-Json 경고 내보내기(#13692)
  • -Directory 스위치의 별칭 D 스위치를 제거 CL-General #15171
  • 변경 가능한 값 형식 검색 개선(#12495)
  • 잠금 상태에서 New-ObjectNoLanguage 모드로 제한(#14140)
  • 실행 정책 바이패스 구성 전에 AppLocker 거부 구성 적용(#15035)
  • FileSystemInfo.TargetCodeProperty에서 FileSystemInfo.LinkTarget을 가리키는 AliasProperty로 변경(#16165)