다음을 통해 공유


PowerShell Core 6.2의 새로운 소식

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)
  • LiteralPathImport-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-Computer WinRM이 없을 때 해결 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-Json to expose JsonObject.ConvertToJson as a public API (#8682)
  • ConvertFrom-Json-Depth (#8199) (감사합니다) (감사합니다)@louistio!)
  • cmdlet (#7775)에 ConvertTo-Json EscapeHandling 파라미터를 추가하세요 (감사합니다) @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-Hex ShouldProcess 제거
  • 새로운 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-ExperimentalFeatureDisable-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-PSHostProcessInfoEnter-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.ReadFileShare.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!)