PowerShell Core 6.2 릴리스는 성능 향상, 버그 수정, 품질 향상을 위한 소규모 명령어 및 언어 개선에 중점을 두었습니다. 개선된 전체 목록을 보시려면 GitHub의 상세 한 변경 로그 를 참고하세요.
실험적 기능
이전에는 실험적 기능 지원을 활성화했습니다. 6.2 버전에서는 네 가지 실험적인 기능을 시도해볼 수 있습니다. 개선을 위해 피드백을 주시고, 이 기능이 주류 수준으로 승격할 가치가 있는지 결정할 수 있도록 해 주세요.
사용 가능한 실험 기능 목록을 얻기 위해 사용하세요 Get-ExperimentalFeature . 이 기능들은 와 Disable-ExperimentalFeature로 활성화 Enable-ExperimentalFeature 하거나 비활성화할 수 있습니다.
명령어를 찾지 못함 제안
이 기능은 퍼지 매칭을 사용해 잘못 입력한 명령어나 명령어에 대한 제안을 찾아줍니다.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
예시
이 예시에서 잘못 철자된 cmdlet 이름은 가장 가능성 높은 것부터 가장 가능성 낮은 것까지 여러 제안과 퍼지가 일치합니다.
Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.
암묵적 원격 배치
파이프라인에서 암묵적 원격 방식을 사용할 때, PowerShell은 파이프라인 내 각 명령어를 독립적으로 처리합니다. 객체는 파이프라인 실행 과정에서 클라이언트와 원격 시스템 간에 반복적으로 직렬화 de-serialized 됩니다.
이 기능을 통해 PowerShell은 파이프라인을 분석하여 명령어가 안전하게 실행될 수 있고 대상 시스템에 존재하는지 판단합니다. 만약 그렇다면, PowerShell은 전체 파이프라인을 원격으로 실행하고 결과를 직렬화하여 de-serializes 클라이언트로 반환합니다.
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
오버 로컬 호스트의 Get-Process | Sort-Object 실제 테스트는 10-15초에서 20-30 밀리초로 줄어듭니다. 이 기능은 클라이언트에서만 활성화하면 됩니다. 서버에서는 별도의 변경이 필요하지 않습니다.
임시 운전
Enable-ExperimentalFeature -Name PSTempDrive
PowerShell Core를 다른 운영체제에서 사용한다면, 임시 디렉터리를 찾는 환경 변수가 Windows, macOS, Linux에서 다르다는 것을 알게 될 것입니다! 이 기능을 사용하면 PSDrive 가 호출 Temp: 되어 사용 중인 운영체제의 임시 폴더에 자동으로 매핑됩니다.
예시
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
리눅스와 같은 ls 네이티브 파일 명령어는 PSDrives를 인식하지 못해 이 Temp: 드라이브를 인식하지 못한다는 점을 유의하세요.
약어 확장
PowerShell cmdlet은 기술적 명사를 포함해야 합니다. 이로 인해 타이핑하기 더 어려운 긴 이름이 생깁니다. 이 기능은 명령어의 대문자만 입력하고 탭 완성 기능을 사용해 일치하는 글자를 찾을 수 있게 해줍니다.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
예시
PS> i-arsavsf
탭 키를 누르고 Azure PowerShell Az 모듈이 설치되어 있으면, 자동 완성 기능이 다음과 같습니다:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
비고
이 기능은 인터랙티브로 사용하도록 설계되었습니다. 단축된 명령어들은 실행할 수 없습니다. 이 기능은 별칭을 대체하는 것이 아닙니다.
파괴적 변경
- Windows PowerShell과 일관성 있게 동작
Write-Output을 수정-NoEnumerate하세요. (#9069) - 결과와
1,2,3 | Join-String결과를 같게 하세요Join-String -InputObject 1,2,3(#8611) (감사합니다)@sethvs!) - 추가
-StableSort-Object및 관련 테스트 (#7862) (감사합니다) @KirkMunro!) - 분수 초를 받아들이도록 cmdlet 개선
Start-Sleep(#8537) (감사합니다) @Prototyyppi!) - 해시테이블을 모든 문화에서 OrdinalIgnoreCase
case-insensitive로 변경하기 (#8566) -
LiteralPath
Import-Csv를 출력에Get-ChildItem바인딩하도록 수정하세요 (#8277) (감사합니다)@iSazonov!) - (#7899)에서
Import-Csv이중 따옴표 구분자를 사용하면 이름이 없는 열을 더 이상 건너뛰지 않습니다 (감사합니다) @Topping!) -
Get-ExperimentalFeature스위치 (#8318) 더 이상 없-ListAvailable어요 - 디버그 매개변수가 이제 Inquire 대신 Continue로 설정
$DebugPreference되었습니다 (#8195) (감사합니다)@KirkMunro!) - pwsh(#8115)와 함께 사용되는 비인터랙티브, 리디렉션, 인코딩 명령어로 명시된 경우에는 명예
-OutputFormat - GAC (#8073)에서 로드하기 전에 모듈 베이스 경로에서 어셈블리를 로드하세요
- 리눅스 프리뷰 패키지에서 틸드 제거 (#8244)
- 프로파일 처리 전에 처리를 이동하기
-WorkingDirectory(#8079) - Unix에서 환경 변수를 추가
PATHEXT하지 마세요 (#7697) (감사합니다) @iSazonov!)
알려진 문제
- Windows IOT ARM 플랫폼에서 원격 리모티브 모드에서 모듈 로딩 문제가 발생합니다. 참조 (#8053)
일반 업데이트 및 수정 사항
- 대소문자 구분 파일 시스템 (#8128)에서 파일 및 폴더에 대해 대소문자 구분 없는 탭 완료 활성화
- PSVersionInfo.PSVersion 및 PSVersionInfo.PSEdition 공개 (#8054) (감사합니다) @KirkMunro!)
- 블록 단위로
$_/$PSItemcatch{ }타입 추론 추가하기(#8020) (감사합니다) @vexx32!) - 정적 메서드 호출 타입 추론 (#8018) 수정 (감사합니다) @SeeminglyScience!)
- , , PSObject, 해시테이블에
Select-ObjectGroup-Object대한 추론 타입 생성 (#7231) (감사합니다)@powercode!) - 타입 매개변수를 이용한
ByRef-like호출 메서드 지원 (#7721) - Windows PowerShell 모듈 경로가 이미 환경의 PSModulePath(#7727)에 있는 경우를 처리하세요.
- 비윈도우용 cmdlets 활성화하기
SecureString위해 일반 텍스트를 저장하여 (#9199) - securestring(#7997)으로 clixml을 가져올 때 비Windows에서 오류 메시지 개선
- (#8727) 에 파라미터 ReplyTo
Send-MailMessage추가합니다 (감사합니다) @replicaJunction!) - (#9178)에
Send-MailMessage구식 메시지 추가하세요 -
Restart-ComputerWinRM이 없을 때 해결localhost할 방법 (#9160) - PowerShell이 호스팅될 때 throw 종료 오류를 발생시키세요
Start-Job(#9128) - ushort, uint, ulong, short 리터럴에 C# 스타일 가속기와 접미사를 추가하세요 (#7813) (감사합니다) @vexx32!)
- 숫자 리터럴에 대한 새로운 접미사 추가, about_Numeric_Literals (#7901) 참조 (감사합니다) @vexx32!)
- SupportsShouldProcess 가 'true'로 설정되어 있지 않을 때 영향 수준을 올바르게 보고하기 (#8209) (감사합니다) @vexx32!)
- 웹 커미들렛에서 요청 문자 집합 문제 수정 (#8742) (감사합니다) @markekraus!)
- 웹 커플렛의 Expect
100-continue문제 수정 (#8679) (감사합니다) @markekraus!) - 웹 커맨들렛 (#7676) 파일 차단 문제 수정 (감사합니다) @Claustn!)
- (#8694)에서
Invoke-RestMethod코드 페이지 파싱 문제를 수정하세요 (감사합니다) @markekraus!) - Refactor
ConvertTo-Jsonto expose JsonObject.ConvertToJson as a public API (#8682) -
ConvertFrom-Json-Depth (#8199) (감사합니다) (감사합니다)@louistio!) - cmdlet (#7775)에
ConvertTo-JsonEscapeHandling 파라미터를 추가하세요 (감사합니다) @iSazonov!) - pwsh에 더
-CustomPipeName하고Enter-PSHostProcess(#8889) - Windows에서 (#8783)로
New-Item상대 기호 링크를 생성할 수 있도록 활성화하세요 - 개발자 모드에서 윈도우 사용자가 고도 없이 심볼릭 링크를 생성할 수 있게 허용 (#8534)
- 수락
$null가능Write-Information(#8774) - MAML 도움말 콘텐츠가 포함된 고급 기능 수정
Get-Help(#8353) - 하나의 매개변수만 선언되었을 때 -Parameter에서 PSTypeName 문제를 해결하세요
Get-Help(#8754) (감사합니다) @pougetat!) - ScriptBlock에서 실행되는
Get-Help토큰 계산 수정을 댓글 도움 요청합니다. (#8238) (감사합니다 @hubuk!) - cmdlet -Parameter 매개변수를 변경해서 배열을 허용하도록 하세요
Get-Help(#8454) (감사합니다) @sethvs!) - 페이저 경로에 공백이 포함되어 있으면 해석하세요 (#8571) (감사합니다) @pougetat!)
- '도움말' 함수에 프롬프트를
less추가하여 사용자가 종료하는 방법을 지시합니다 (#7998) - cmdlet에
Format-Hex지원 열거와 char 타입을 추가하세요 (#8191) (감사합니다) @iSazonov!) - (#8178)에서
Format-HexShouldProcess 제거 - 새로운 Offset 및 Count 파라미터를
Format-Hex추가하고 cmdlet(#7877)을 리팩토링하세요 (감사합니다) @iSazonov!) - 'name'을 'label'
ConvertTo-Html의 별칭 키로 허용하세요, 'width' 항목이 정수로 설정되도록 허용하세요 (#8426) (감사합니다) @mklement0!) - 스크립트블록 기반 계산 속성을 (#8427)에서
ConvertTo-Html다시 작동하게 만들었어요 (감사합니다) @mklement0!) - 파이프라인 입력에서 텍스트를 생성하는 cmdlet
Join-String추가(#7660) (감사합니다) @powercode!) - cmdlet FormatString 매개변수 로직 수정
Join-String(#8449) (감사합니다) @sethvs!) - 원격 통신 대신 사용
$RAWUI과 작업 허가로 다시 변경Clear-Host하세요 (#8609) - Unix에서 단순히 호출
[console]::clear하고 clear alias 제거로 변경Clear-Host(#8603) - LiteralPath
Import-Csv를 출력에Get-ChildItem바인딩하도록 수정하세요 (#8277) (감사합니다) @iSazonov!) - 도움말 기능은 AliasHelpInfo (#8552)에 호출기를 사용하지 않아야 합니다
- 최소 전사 헤더 (#8402) 추가
-UseMinimalHeaderStart-Transcript하기 (감사합니다) @lukexjeremy!) - 덧셈
Enable-ExperimentalFeature및Disable-ExperimentalFeature명령어 (#8318) - PSDiagnostics에서 logman.exe 가능한 모든 cmdlet을 노출하세요 (#8366)
- 플랫폼 (#8291)에서
New-PSDrivenon-WindowsPersist 매개변수를 제거하세요 (감사합니다)@lukexjeremy!) - (#7206) 지원
cd +추가하기 (감사합니다) @bergmeister!) - - 및 + (#8089) 폴더 작업 가능
Set-Location -LiteralPath -
Test-Path빈 값이나$null경로 값이 주어지면 반환$false(#8080) (감사합니다)@vexx32!) - 경로가 어떤 제공자와 일치하지 않더라도 동적 매개변수를 반환할 수 있도록 허용합니다 (#7957)
- 지원
Get-PSHostProcessInfo및Enter-PSHostProcess유닉스 플랫폼 (#8232) - cmdlet (#8103) 할당 감소
Get-Content(감사합니다) @iSazonov!) -
Add-Content콘텐츠 작성 시 다른 도구와 읽기 접근 권한을 공유하기 (#8091) -
Get/Add-Content컨테이너 타겟팅 시 오류 감소 개선 (#7823) (감사합니다) @kvprasoon!) - cmdlet (#7702) 에 , 와
-NoUserOverrides-ListAvailable매개변수Get-Culture를 추가-Name하세요 (감사합니다)@iSazonov!) - 인코딩 매개변수에 대한 완성을 위한 통합 속성을 추가하세요. (#7732) (감사합니다 @ThreeFive-O!)
- 인 코딩 매개변수 (#7636) 내에서 등록된 코드 페이지의 숫자 ID와 이름을 허용합니다 (감사합니다) @iSazonov!)
- 와일드카드 캐릭터(#7398)로 수정
Rename-Item -Path(감사합니다) @kwkam!) - and 파일을 사용할
Start-Transcript때는 삭제 대신 비워 있습니다 (#8131) (감사합니다) @paalbra!) -
FileAccess.Read 및 FileShare.Read 명시적으로 오픈 소스 파일을 만드
Add-Type세요 (#7915) (감사합니다)@IISResetMe!) - 최신 Windows (#7883) 수정
Enter-PSSession -ContainerId -
NestedModules 속성이 (#7859)로
Test-ModuleManifest채워지도록 하세요. - -UFormat에
Get-Date케이스 추가%F하세요 (#7630) (감사합니다)@britishben!) - 의존성이 있는 서비스 중단 방법
Set-Service -Status Stopped(#5525) (감사합니다) @zhenggu!)