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 Preview를 다운로드하여 설치합니다. 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 모듈에 포함된 cmdlet을 사용하면 파일 및 폴더를 보관(ZIP이라고도 함) 파일에 압축하고, 기존 ZIP 파일에서 파일을 추출하고, ZIP 파일을 내부에 압축된 파일의 최신 버전으로 업데이트할 수 있습니다.
새 모듈인 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가 아닌 runspaces) Windows PowerShell 스크립트에서 중단점을 설정하고 중단점을 추가하여 디버거를 연결하여 Runspace 스크립트를 디버그할 수 있을 때까지 스크립트 실행을 중지합니다. 임의의 Runspace에 대한 중첩된 디버깅 지원이 Runspace에 대한 Windows PowerShell 스크립트 디버거에 추가되었습니다.
새 Enter-PSHostProcess 및 Exit-PSHostProcess cmdlet을 사용하면 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 워크플로, 백그라운드 및 원격 세션에서 실행되는 작업에 대해 실행 중인 작업 스크립트를 디버그할 수 있도록 Debug-Job cmdlet이 Microsoft.PowerShell.Core 모듈에 추가되었습니다.
Windows PowerShell 작업에 대해 새 AtBreakpoint 상태가 추가되었습니다. AtBreakpoint 상태는 작업이 중단점 설정을 포함하는 스크립트를 실행하고 스크립트가 중단점에 도달했을 때 적용됩니다. 디버그 중단점에서 작업이 중지되면 Debug-Job cmdlet을 실행하여 작업을 디버그해야 합니다.
Windows PowerShell 5.0에서는 $PSModulePath의 동일한 폴더에서 단일 Windows PowerShell 모듈의 여러 버전에 대한 지원을 구현합니다. 원하는 버전의 모듈을 가져오는 데 도움이 되도록 RequiredVersion 속성이 ModuleSpecification 클래스에 추가되었습니다. 이 속성은 ModuleVersion 속성과 함께 사용할 수 없습니다. 이제 RequiredVersion이 Get-Module, Import-Module 및 Remove-Module cmdlet에 대한 FullyQualifiedName 매개 변수 값의 일부로 지원됩니다.
이제 Test-ModuleManifest cmdlet을 실행하여 모듈 버전 유효성 검사를 수행할 수 있습니다.
이제 Get-Command cmdlet의 결과에 Version 열이 표시됩니다. 새 Version 속성이 CommandInfo 클래스에 추가되었습니다. 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에서 부분 구성이 허용됩니다. 구성 문서를 조각으로 노드에 전달할 수 있습니다. 노드가 구성 문서의 여러 조각을 수신하려면 노드의 로컬 Configuration Manager 먼저 설정하여 예상된 조각을 지정해야 합니다.
컴퓨터 간 동기화는 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을 참조하세요.
다음과 같은 새 cmdlet이 PSDesiredStateConfiguration 모듈에 추가되었습니다.
- 새 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 파일을 쉽게 편집할 수 있습니다. - 이제 Windows PowerShell ISE에서 Start-Transcript cmdlet이 지원됩니다.
- 이제 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_Desired_State_Configuration
키워드
Windows PowerShell 5.0의 새로운 기능