WMF(Windows Management Framework) 5.x 릴리스 정보

WMF 5.0 변경 내용

  • PowerShell 5.0은 새로운 구조적 정보 스트림을 추가합니다.
  • 4개의 새 DSC 리소스를 포함한 DSC 개선 사항:
    • WindowsFeatureSet
    • WindowsOptionalFeatureSet
    • ServiceSet
    • ProcessSet
  • PowerShell 원격을 통해 역할 기반 관리를 사용하도록 설정하는 Just Enough 관리가 추가됨
  • PowerShell 5.0은 사용자 정의 클래스 및 열거형을 포함하도록 언어를 확장합니다.
  • PowerShell ISE의 디버깅 기능 향상 및 원격 디버깅 추가
  • PowerShellGet 및 PackageManagement 모듈 추가됨
  • 향상된 PowerShell 스크립트 로깅 및 기록
  • 암호화 메시지 구문 cmdlet 추가
  • WMF 5.0에는 Windows용 NetworkSwitchManager 모듈이 포함되어 있습니다.
  • Microsoft.PowerShell.ODataUtils 모듈 추가됨
  • SIL(소프트웨어 인벤토리 로깅)에 대한 지원이 추가됨
  • 사용자 요청 및 문제에 대한 응답으로 새 cmdlet 또는 업데이트 cmdlet을 끊습니다.

WMF 5.1 변경 내용

WMF 5.1에는 Windows Server 2016에서 릴리스된 PowerShell, WMI, WinRM 및 SIL(소프트웨어 인벤토리 로깅) 구성 요소가 포함되어 있습니다. WMF 5.1은 Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 및 2012 R2에 설치할 수 있으며 다음을 포함하여 WMF 5.0보다 몇 가지 향상된 기능을 제공합니다.

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

중요하다

Windows Server 2008 또는 Windows 7에 WMF 5.1을 설치하기 전에 WMF 3.0이 설치되어 있지 않은지 확인합니다. 자세한 내용은 Windows Server 2008 R2 SP1 및 Windows 7 SP1대한 WMF 5.1 필수 구성 요소를 참조하세요.

PowerShell 버전

버전 5.1부터 PowerShell은 다양한 기능 집합 및 플랫폼 호환성을 나타내는 다양한 버전에서 사용할 수 있습니다.

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

PowerShell 버전 사용에 대해 자세히 알아보기

모듈 분석 캐시

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 생성자(Hashtable)사용할 수 있습니다.

    이 해시 테이블의 형식은 Get-Module -FullyQualifiedName.

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

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

Pester 개선 사항

WMF 5.1에서는 PowerShell과 함께 제공되는 Pester 버전이 3.3.5에서 3.4.0으로 업데이트되었습니다. 이 업데이트는 Nano 서버의 Pester에 대한 더 나은 동작을 가능하게 합니다.

GitHub 리포지토리에서 CHANGELOG 검사하여 Pest의 변경 내용을 검토할 수 있습니다.