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-Object
를 NoLanguage 모드로 제한(#14140) - 실행 정책 바이패스 구성 전에 AppLocker 거부 구성 적용(#15035)
FileSystemInfo.Target
을 CodeProperty에서FileSystemInfo.LinkTarget
을 가리키는 AliasProperty로 변경(#16165)
PowerShell