다음을 통해 공유


about_Windows_PowerShell_5.0

간단한 설명

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

자세한 설명

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

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

Windows PowerShell 5.0은 Windows Server Technical Preview 및 Windows Technical Preview에 기본적으로 설치됩니다. Windows Server 2012 R2, Windows 8.1 Enterprise 또는 Windows 8.1 Pro에 Windows PowerShell 5.0을 설치하려면 Windows Management Framework 5.0을 다운로드하여 설치합니다. Windows Management Framework 5.0 Preview를 설치하기 전에 다운로드 세부 정보를 읽고 모든 시스템 요구 사항을 충족해야 합니다.

Windows PowerShell의 새로운 기능에서 Windows PowerShell 5.0의 변경 사항에 대해 알아볼 수도 있습니다.

새로운 기능

Windows PowerShell의 새로운 기능

  • Windows PowerShell 5.0부터는 다른 개체 지향 프로그래밍 언어와 유사한 형식 구문 및 의미 체계를 사용하여 클래스를 사용하여 개발할 수 있습니다. 새로운 기능을 지원하기 위해 Class, Enum 및 기타 키워드가 Windows PowerShell 언어에 추가되었습니다. 클래스 작업에 대한 자세한 내용은 about_Classes 항목을 참조하십시오.

  • Microsoft Research와의 공동 작업으로 ConvertFrom-String이라는 새로운 cmdlet이 추가되었습니다. ConvertFrom-String를 사용하면 텍스트 문자열의 내용에서 구조화된 개체를 추출하고 구문 분석할 수 있습니다. 자세한 내용은 ConvertFrom-String을 참조하세요.

  • 새 모듈인 Microsoft.PowerShell.Archive에는 파일 및 폴더를 보관(ZIP이라고도 함) 파일로 압축하고, 기존 ZIP 파일에서 파일을 추출하고, ZIP 파일을 압축된 최신 버전의 파일로 업데이트할 수 있는 cmdlet이 포함되어 있습니다.

  • 새 모듈인 OneGet을 사용하면 인터넷에서 소프트웨어 패키지를 검색하고 설치할 수 있습니다. OneGet 모듈은 단일 Windows PowerShell 인터페이스로 Windows 패키지 관리를 통합하기 위한 기존 패키지 관리자(패키지 공급자라고도 함)의 관리자 또는 멀티플렉서입니다.

  • 새 모듈인 PowerShellGet을 사용하면 PowerShell 리소스 갤러리 또는 Register-PSRepository cmdlet을 실행하여 설정할 수 있는 내부 모듈 리포지토리에서 모듈 및 DSC 리소스를 찾고, 설치하고, 게시하고, 업데이트할 수 있습니다.

  • New-Item, Remove-Item 및 Get-ChildItem 기호 링크 만들기 및 관리를 지원하도록 향상되었습니다. New-Item의 ItemType 매개변수는 새 값인 SymbolicLink를 허용합니다. 이제 New-Item cmdlet을 실행하여 한 줄에 바로 가기 링크를 만들 수 있습니다.

  • Windows PowerShell 전사가 콘솔 호스트(powershell.exe)뿐만 아니라 모든 호스팅 응용 프로그램(예: Windows PowerShell ISE)에 적용되도록 개선되었습니다. 전사 옵션(시스템 전체 대본 사용 포함)은 관리 템플릿/Windows 구성 요소/Windows PowerShell에 있는 PowerShell 전사 켜기 그룹 정책 설정을 사용하도록 설정하여 구성할 수 있습니다.

  • 새로운 상세 스크립트 추적 기능을 사용하면 시스템에서 Windows PowerShell 스크립팅 사용에 대한 자세한 추적 및 분석을 수행할 수 있습니다. 자세한 스크립트 추적을 사용하도록 설정하면 Windows PowerShell 모든 스크립트 블록을 ETW(Windows용 이벤트 추적) 이벤트 로그 Microsoft-Windows-PowerShell/Operational에 기록합니다.

  • Windows PowerShell 5.0부터 새로운 암호화 메시지 구문 cmdlet은 RFC5652에서 문서화한 대로 메시지를 암호화하여 보호하기 위해 IETF 표준 형식을 사용하여 콘텐츠의 암호화 및 암호 해독을 지원합니다. Get-CmsMessage, Protect-CmsMessage 및 Unprotect-CmsMessage cmdlet이 Microsoft.PowerShell.Security 모듈에 추가되었습니다.

  • Microsoft.PowerShell.Utility 모듈의 새로운 cmdlet인 Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug 및 Disable-RunspaceDebug를 사용하면 Runspace에서 디버그 옵션을 설정하고 Runspace에서 디버깅을 시작 및 중지할 수 있습니다. 임의의 Runspace, 즉 Windows PowerShell 콘솔 또는 Windows PowerShell ISE 세션의 기본 Runspace가 아닌 Runspace를 디버깅하기 위해 Windows PowerShell을 사용하면 스크립트에 중단점을 설정할 수 있으며, 디버거를 연결하여 Runspace 스크립트를 디버그할 수 있을 때까지 스크립트 실행을 중지할 중단점을 추가할 수 있습니다. 임의의 Runspace에 대한 중첩된 디버깅 지원이 Runspace용 Windows PowerShell 스크립트 디버거에 추가되었습니다.

  • 새로운 cmdlet Enter-PSHostProcess 및 Exit-PSHostProcess 사용하면 Windows PowerShell 콘솔에서 실행 중인 현재 프로세스와 별개의 프로세스에서 Windows PowerShell 스크립트를 디버그할 수 있습니다. Enter-PSHostProcess 실행하여 특정 프로세스 ID를 입력하거나 연결한 다음 Get-Runspace 실행하여 프로세스 내의 활성 Runspace를 반환합니다. Exit-PSHostProcess 실행하여 프로세스 내에서 스크립트 디버깅을 마쳤을 때 프로세스에서 분리합니다.

  • 새 Wait-Debugger cmdlet이 Microsoft.PowerShell.Utility 모듈에 추가되었습니다. 스크립트에서 다음 문을 실행하기 전에 Wait-Debugger 실행하여 디버거에서 스크립트를 중지할 수 있습니다.

  • Windows PowerShell 워크플로 디버거는 이제 명령 또는 탭 완성을 지원하며 중첩된 워크플로 함수를 디버그할 수 있습니다. 이제 Ctrl+Break를 눌러 실행 중인 스크립트, 로컬 및 원격 세션 및 워크플로 스크립트에 디버거를 입력할 수 있습니다.

  • Windows PowerShell 워크플로, 백그라운드 및 원격 세션에서 실행되는 작업에 대해 실행 중인 작업 스크립트를 디버그하기 위해 Microsoft.PowerShell.Core 모듈에 Debug-Job cmdlet이 추가되었습니다.

  • Windows PowerShell 작업에 대해 새로운 상태인 AtBreakpoint가 추가되었습니다. AtBreakpoint 상태는 작업이 중단점 설정을 포함하는 스크립트를 실행 중이고 스크립트가 중단점에 도달한 경우에 적용됩니다. 디버그 중단점에서 작업이 중지되면 Debug-Job cmdlet을 실행하여 작업을 디버그해야 합니다.

  • Windows PowerShell 5.0은 $PSModulePath의 동일한 폴더에 있는 단일 Windows PowerShell 모듈의 여러 버전에 대한 지원을 구현합니다. 원하는 버전의 모듈을 가져오는 데 도움이 되도록 ModuleSpecification 클래스에 RequiredVersion 속성이 추가되었습니다. 이 속성은 ModuleVersion 속성과 함께 사용할 수 없습니다. RequiredVersion은 이제 Get-Module, Import-Module 및 Remove-Module cmdlet의 FullyQualifiedName 매개 변수 값의 일부로 지원됩니다.

  • 이제 Test-ModuleManifest cmdlet을 실행하여 모듈 버전 유효성 검사를 수행할 수 있습니다.

  • Get-Command cmdlet의 결과에 이제 버전 열이 표시됩니다. CommandInfo 클래스에 새 Version 속성이 추가되었습니다. Get-Command 는 동일한 모듈의 여러 버전에 있는 명령을 표시합니다. Version 속성은 CmdletInfo의 파생 클래스인 CmdletInfo 및 ApplicationInfo의 일부이기도 합니다.

  • 새로운 Get-ItemPropertyValue cmdlet을 사용하면 점 표기법을 사용하지 않고 속성 값을 가져올 수 있습니다. 예를 들어 이전 릴리스의 Windows PowerShell에서는 다음 명령을 실행하여 PowerShellEngine 레지스트리 키의 Application Base 속성 값을 가져올 수 있습니다.

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    (Get-ItemProperty -Path $keypath -Name  ApplicationBase).ApplicationBase
    

    Windows PowerShell 5.0부터 다음을 실행할 수 있습니다.

    $keypath = 'HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine'
    Get-ItemPropertyValue -Path $keypath -Name ApplicationBase
    
  • 새 NetworkSwitch 모듈에는 스위치, VLAN(가상 LAN) 및 기본 계층 2 네트워크 스위치 포트 구성을 Windows Server 2012 R2 이상 릴리스의 로고 인증 네트워크 스위치에 적용할 수 있는 cmdlet이 포함되어 있습니다.

  • FullyQualifiedName 매개 변수가 Import-Module 및 Remove-Module cmdlet에 추가되어 단일 모듈의 여러 버전을 저장할 수 있습니다.

  • Save-Help, Update-Help, Import-PSSession, Export-PSSession 및 Get-Command에는 ModuleSpecification 형식의 새 매개 변수인 FullyQualifiedModule이 있습니다. 이 매개 변수를 추가하여 정규화된 이름으로 모듈을 지정합니다.

  • $PSVersionTable.PSVersion의 값이 5.0으로 업데이트되었습니다.

Windows PowerShell 필요한 상태 구성의 새로운 기능

  • Windows PowerShell 향상된 언어 기능을 사용하면 클래스를 사용하여 Windows PowerShell DSC(필요한 상태 구성) 리소스를 정의할 수 있습니다. Import-DscResource는 이제 진정한 동적 키워드입니다. Windows PowerShell은 지정된 모듈의 루트 모듈을 구문 분석하여 DscResource 특성이 포함된 클래스를 검색합니다. 이제 클래스를 사용하여 모듈 폴더의 MOF 파일이나 DSCResource 하위 폴더가 필요하지 않은 DSC 리소스를 정의할 수 있습니다. Windows PowerShell 모듈 파일에는 여러 DSC 리소스 클래스가 포함될 수 있습니다.

  • 새 매개 변수 ThrottleLimit가 PSDesiredStateConfiguration 모듈의 다음 cmdlet에 추가되었습니다. ThrottleLimit 매개 변수를 추가하여 명령을 동시에 사용할 대상 컴퓨터 또는 장치의 수를 지정합니다.

    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • 중앙 집중식 DSC 오류 보고를 사용하면 풍부한 오류 정보가 이벤트 로그에 기록될 뿐만 아니라 나중에 분석할 수 있도록 중앙 위치로 보낼 수 있습니다. 이 중앙 위치를 사용하여 해당 환경의 모든 서버에 대해 발생한 DSC 구성 오류를 저장할 수 있습니다. 메타 구성에서 보고서 서버를 정의한 후 모든 오류는 보고서 서버로 전송된 다음 데이터베이스에 저장됩니다. 대상 노드가 끌어오기 서버에서 구성을 가져오도록 구성되어 있는지 여부에 관계없이 이 기능을 설정할 수 있습니다.

  • Windows PowerShell ISE가 향상되어 DSC 리소스를 쉽게 작성할 수 있습니다. 이제 다음을 수행할 수 있습니다.

    • 블록 내의 빈 줄에 Ctrl+Space를 입력하여 구성 또는 노드 블록 내의 모든 DSC 리소스를 나열합니다.
    • 열거형 형식의 리소스 속성에 대한 자동 완성
    • 구성의 다른 리소스 인스턴스를 기반으로 DSC 리소스의 DependsOn 속성에 대한 자동 완성
    • 리소스 속성 값의 탭 완성이 향상되었습니다.
  • 새 DscLocalConfigurationManager 특성은 구성 블록을 DSC 로컬 구성 관리자를 구성하는 데 사용되는 메타 구성으로 지정합니다. 이 특성은 DSC 로컬 구성 관리자를 구성하는 항목만 포함하도록 구성을 제한합니다. 처리하는 동안 이 구성은 *.meta.mof 파일을 생성한 다음 Set-DscLocalConfigurationManager cmdlet을 실행하여 적절한 대상 노드로 보냅니다.

  • 이제 Windows PowerShell 5.0에서 부분 구성을 사용할 수 있습니다. 구성 문서를 프래그먼트로 노드에 전달할 수 있습니다. 노드가 구성 문서의 여러 프래그먼트를 수신하려면 먼저 노드의 로컬 구성 관리자를 설정하여 예상되는 프래그먼트를 지정해야 합니다.

  • 컴퓨터 간 동기화는 Windows PowerShell 5.0의 DSC에 새로 추가되었습니다. 이제 기본 제공 WaitFor* 리소스(WaitForAll, WaitForAny 및 WaitForSome)를 사용하여 외부 오케스트레이션 없이 구성 실행 중에 컴퓨터 간에 종속성을 지정할 수 있습니다. 이러한 리소스는 WS-Man 프로토콜을 통한 CIM 연결을 사용하여 노드 간 동기화를 제공합니다. 구성은 다른 컴퓨터의 특정 리소스 상태가 변경될 때까지 기다릴 수 있습니다.

  • 새로운 위임 보안 기능인 JEA(Just Enough Administration)는 DSC 및 Windows PowerShell 제한 Runspace를 활용하여 의도적이든 의도적이지 않든 직원에 의한 데이터 손실 또는 손상으로부터 기업을 보호할 수 있습니다. xJEA DSC 리소스를 다운로드할 수 있는 위치를 포함하여 JEA에 대한 자세한 내용은 Just Enough Administration을 참조하세요.

  • PSDesiredStateConfiguration 모듈에 다음과 같은 새 cmdlet이 추가되었습니다.

    • 새 Get-DscConfigurationStatus cmdlet은 대상 노드에서 구성 상태에 대한 개략적인 정보를 가져옵니다. 마지막 구성 또는 모든 구성의 상태를 가져올 수 있습니다.
    • 새 Compare-DscConfiguration cmdlet은 지정된 구성을 하나 이상의 대상 노드의 실제 상태와 비교합니다.
    • 새 Publish-DscConfiguration cmdlet은 구성 MOF 파일을 대상 노드에 복사하지만 구성을 적용하지는 않습니다. 구성은 다음 일관성 단계 동안 또는 Update-DscConfiguration cmdlet을 실행할 때 적용됩니다.
    • 새로운 Test-DscConfiguration cmdlet을 사용하면 결과 구성이 원하는 구성과 일치하는지 확인할 수 있으며, 구성이 원하는 구성과 일치하는 경우 True를 반환하거나 실제 구성이 원하는 구성과 일치하지 않는 경우 False를 반환할 수 있습니다.
    • 새 Update-DscConfiguration cmdlet은 구성을 강제로 처리합니다. 로컬 구성 관리자가 끌어오기 모드인 경우 cmdlet은 적용하기 전에 끌어오기 서버에서 구성을 가져옵니다.

Windows PowerShell ISE의 새로운 기능

  • 이제 Enter-PSSession를 실행하여 편집하려는 파일이 저장된 컴퓨터에서 원격 세션을 시작한 다음 PSEdit <path and file name on the remote computer>실행하여 Windows PowerShell ISE의 로컬 복사본에서 원격 Windows PowerShell 스크립트 및 파일을 편집할 수 있습니다. 이 기능을 사용하면 Windows PowerShell ISE를 실행할 수 없는 Windows Server의 Server Core 설치 옵션에 저장된 Windows PowerShell 파일을 쉽게 편집할 수 있습니다.
  • 이제 Start-Transcript cmdlet이 Windows PowerShell ISE에서 지원됩니다.
  • 이제 Windows PowerShell ISE에서 원격 스크립트를 디버그할 수 있습니다.
  • 새 메뉴 명령인 모두 중단(Ctrl+B)은 로컬 및 원격으로 실행되는 스크립트 모두에 대한 디버거를 중단합니다.

Windows PowerShell 웹 서비스의 새로운 기능(관리, OData, IIS 확장)

  • Windows PowerShell 5.0부터는 Export-ODataEndpointProxy cmdlet을 실행하여 지정된 OData 끝점에서 제공하는 기능을 기반으로 Windows PowerShell cmdlet 집합을 생성할 수 있습니다.

Windows PowerShell 5.0의 주요 버그 수정

  • Windows PowerShell 5.0에는 COM 개체로 작업할 때 성능이 크게 향상되는 새로운 COM 구현이 포함되어 있습니다.

Windows PowerShell 5.0에 대한 자세한 내용은 다음 웹 사이트를 참조하세요.

참고 항목

클래스_소개

about_Debuggers

about_Desired_State_Configuration

업데이트 가능한 도움말 정보

저장-도움

모듈 가져오기

디버그 작업

업데이트 도움말

Get-Process (프로세스 가져오기)

컴퓨터 제거

Set-ExecutionPolicy (실행 정책 설정)

추가 컴퓨터

ConvertFrom-문자열

invoke-rest메소드

Set-JobTrigger

Set-ScheduledJob

새 JobTrigger

Register-ScheduledJob

Enable-JobTrigger

사용 안 함-JobTrigger

키워드

Windows PowerShell 5.0의 새로운 기능