about_Windows_Powershell_5.1

간단한 설명

Windows PowerShell 5.1에 포함된 새로운 기능에 대해 설명합니다.

자세한 설명

Windows PowerShell 5.1에는 사용을 확장하고 유용성을 개선하며 Windows 기반 환경을 보다 쉽고 포괄적으로 제어하고 관리할 수 있는 중요한 새로운 기능이 포함되어 있습니다.

Windows PowerShell 5.1은 이전 버전과 호환됩니다. Windows PowerShell 4.0, Windows PowerShell 3.0 및 Windows PowerShell 2.0용으로 설계된 Cmdlet, 공급자, 모듈, 스냅인, 스크립트, 함수 및 프로필은 일반적으로 Windows PowerShell 5.1에서 변경 없이 작동합니다.

  • 새 cmdlet: 로컬 사용자 및 그룹; Get-ComputerInfo
  • 서명된 모듈, JEA 모듈 설치 등의 PowerShellGet 개선 사항
  • PackageManagement에서 컨테이너, CBS 설치 프로그램, EXE 기반 설정, CAB 패키지에 대한 지원을 추가했습니다.
  • DSC 및 PowerShell 클래스에 대한 디버깅 개선 사항
  • 끌어오기 서버에서 오는 카탈로그 서명 모듈의 적용 및 PowerShellGet cmdlet을 사용하는 경우를 비롯한 보안 향상
  • 다양한 사용자 요청 및 문제에 대한 응답

Windows PowerShell 5.1은 기본적으로 Windows Server 버전 2016 이상 및 Windows 클라이언트 버전 10 이상에 설치됩니다.

이전 버전의 Windows에 Windows PowerShell 5.1을 설치하려면 WMF 5.1 설치 및 구성을 참조하세요. Windows Management Framework 5.1을 설치하기 전에 다운로드 세부 정보를 읽고 모든 시스템 요구 사항을 충족해야 합니다.

Windows PowerShell의 새로운 기능에서 Windows PowerShell 5.1의 변경 내용을 읽을 수도 있습니다.

PowerShell Edition

버전 5.1부터 PowerShell은 다양한 기능 집합 및 플랫폼 호환성을 나타내는 다양한 버전으로 사용 가능합니다.

  • Desktop Edition: .NET Framework를 기반으로 구축되며 Server Core 및 Windows Desktop과 같은 전체 버전의 Windows에서 실행되는 PowerShell 버전을 대상 지정하는 스크립트 및 모듈과 호환성을 제공합니다.
  • Core Edition: .NET Framework를 기반으로 구축되며 Nano 서버 및 Windows IoT와 같은 축소된 버전의 Windows에서 실행되는 PowerShell 버전을 대상 지정하는 스크립트 및 모듈과 호환성을 제공합니다.

PowerShell 버전 사용 방법에 대한 자세한 정보

카탈로그 Cmdlet

Microsoft.PowerShell.Security 모듈에 두 개의 새 cmdlet이 추가되었습니다. 이러한 cmdlet은 Windows 카탈로그 파일을 생성하고 유효성을 검사합니다.

New-FileCatalog

New-FileCatalog 는 폴더 및 파일 집합에 대한 Windows 카탈로그 파일을 만듭니다. 이 카탈로그 파일에는 지정된 경로의 모든 파일에 대한 해시가 포함되어 있습니다. 사용자는 해당 폴더를 나타내는 해당 카탈로그 파일과 함께 폴더 집합을 배포할 수 있습니다. 이 정보는 카탈로그 생성 시간 이후 폴더가 변경되었는지 확인하는 데 유용합니다.

New-FileCatalog [-CatalogFilePath] <string> [[-Path] <string[]>]
 [-CatalogVersion <int>] [-WhatIf] [-Confirm] [<CommonParameters>]

카탈로그 버전 1과 2가 지원됩니다. 버전 1은 SHA1 해시 알고리즘을 사용하여 파일 해시를 만듭니다. 버전 2는 SHA256을 사용합니다. 카탈로그 버전 2를 사용해야 합니다.

위의 예제에서 Pester.cat 카탈로그 파일의 무결성을 확인하려면 Set-AuthenticodeSignature cmdlet을 사용하여 서명합니다.

Test-FileCatalog

Test-FileCatalog 폴더 집합을 나타내는 카탈로그의 유효성을 검사합니다.

Test-FileCatalog [-Detailed] [-FilesToSkip <String[]>]
 [-CatalogFilePath] <String> [[-Path] <String[]>]
 [-WhatIf] [-Confirm] [<CommonParameters>]

이 cmdlet은 카탈로그에 있는 모든 파일 해시와 해당 상대 경로를 디스크파일과 비교합니다. 파일 해시와 경로 간의 불일치가 감지되면 상태 ValidationFailed반환합니다. 사용자는 Detailed 매개 변수를 사용하여 이 모든 정보를 검색할 수 있습니다. 또한 카탈로그 파일에서 Get-AuthenticodeSignature cmdlet을 호출하는 것과 동일한 서명 속성에 카탈로그의 서명 상태 표시합니다. 사용자는 FilesToSkip 매개 변수를 사용하여 유효성 검사 중에 파일을 건너뛸 수도 있습니다.

모듈 분석 캐시

WMF 5.1부터 PowerShell은 내보내는 명령과 같이 모듈에 대한 데이터를 캐시하는 데 사용되는 파일을 제어합니다.

기본적으로 이 캐시는 파일에 ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache저장됩니다. 캐시는 일반적으로 명령을 검색하는 동안 시작 시 읽혀지고 모듈을 가져온 후에 백그라운드 스레드에 기록됩니다.

캐시의 기본 위치를 변경하려면 PowerShell을 $env:PSModuleAnalysisCachePath 시작하기 전에 환경 변수를 설정합니다. 이 환경 변수의 변경 내용은 자식 프로세스에만 영향을 줍니다. 이 값은 PowerShell에서 파일을 만들고 쓸 수 있는 권한이 있는 전체 경로(파일 이름 포함)의 이름을 지정해야 합니다. 파일 캐시를 사용하지 않도록 설정하려면 이 값을 잘못된 위치로 설정합니다. 예를 들면 다음과 같습니다.

$env:PSModuleAnalysisCachePath = 'nul'

그러면 잘못된 디바이스의 경로가 설정됩니다. PowerShell이 경로에 쓸 수 없는 경우 오류가 반환되지 않지만 추적기를 사용하여 오류 보고를 볼 수 있습니다.

Trace-Command -PSHost -Name Modules -Expression {
  Import-Module Microsoft.PowerShell.Management -Force
}

캐시를 작성할 때 PowerShell은 불필요하게 큰 캐시를 방지하기 위해 더 이상 존재하지 않는 모듈에 대한 검사. 다음 설정을 사용하여 검사 사용하지 않도록 설정할 수 있습니다.

$env:PSDisableModuleAnalysisCacheCleanup = 1

이 환경 변수 설정은 현재 프로세스에서 즉시 적용됩니다.

모듈 버전 지정

WMF 5.1에서 using module은 PowerShell에서 다른 모듈 관련 생성과 동일하게 동작합니다. 이전에는 특정 모듈 버전을 지정할 방법이 없었습니다. 여러 버전이 있는 경우 오류가 발생했습니다.

WMF 5.1에서:

  • ModuleSpecification Constructor (Hashtable)(ModuleSpecification 생성자(해시 테이블))를 사용할 수 있습니다. 이 해시 테이블의 형식은 다음과 같습니다 Get-Module -FullyQualifiedName.

    예제using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}:

  • 여러 버전의 모듈이 있는 경우 PowerShell은 동일한 해결 논리Import-Module 사용하며 오류를 반환하지 않습니다.

Pester 개선 사항

WMF 5.1에서는 PowerShell과 함께 제공되는 Pester 버전이 3.3.5에서 3.4.0으로 업데이트되었습니다. GitHub 리포지토리에서 CHANGELOG를 검사하여 버전 3.3.5에서 3.4.0으로 변경 내용을 검토할 수 있습니다.

키워드

Windows PowerShell 5.1의 새로운 기능