about_Windows_PowerShell_4.0

업데이트 날짜: 2014년 5월

적용 대상: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

항목

about_Windows_PowerShell_4.0

간단한 설명

Windows PowerShell® 4.0에 포함된 새로운 기능을 설명합니다.

자세한 설명

Windows PowerShell 4.0에는 용도를 확장하고, 사용 편의성을 높이며, Windows 기반 환경을 더욱 쉽고 종합적으로 제어하고 관리하는 데 사용할 수 있는 몇 가지 중요한 기능이 포함되어 있습니다.

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

Windows PowerShell 4.0의 변경 사항에 대한 자세한 내용은 Microsoft TechNet 항목, "Windows PowerShell 4.0의 새로운 기능" (https://go.microsoft.com/fwlink/?LinkId=307123)(영문)을 참조하세요.

새로운 기능

Windows PowerShell 4.0에는 다음과 같은 새로운 기능이 있습니다.

Windows PowerShell

-- Windows PowerShell DSC(원하는 상태 구성)는 Windows PowerShell에서 소프트웨어 서비스와 해당 서비스가 실행되는 환경에 대한 구성 데이터를 배포 및 관리하는 데 사용되는 새로운 관리 시스템입니다. DSC에 대한 자세한 내용은 Microsoft TechNet 웹 사이트에서 about_Desired_State_Configuration 또는 "Windows PowerShell 원하는 상태 구성 시작"을 참조하세요.

-- Save-Help를 사용하여 원격 컴퓨터에 설치된 모듈에 대한 도움말을 저장할 수 있습니다. Save-Help를 사용하여 인터넷에 연결된 클라이언트에서 도움말 모듈을 다운로드한 다음(도움말이 필요한 일부 모듈은 반드시 설치해야 함) 저장된 도움말을 인터넷에 액세스할 수 없는 원격 컴퓨터 또는 원격 공유 폴더에 복사할 수 있습니다.

-- Windows PowerShell 디버거는 Windows PowerShell 워크플로 및 원격 컴퓨터에서 실행되는 스크립트를 디버깅할 수 있도록 향상되었습니다. 이제 Windows PowerShell 워크플로를 Windows PowerShell 명령줄이나 Windows PowerShell ISE의 스크립트 수준에서 디버깅할 수 있습니다. 스크립트 워크플로를 포함한 Windows PowerShell 스크립트를 이제 원격 세션을 통해 디버깅할 수 있습니다. 원격 디버깅 세션은 연결이 끊어졌다가 나중에 다시 연결하면 Windows PowerShell 원격 세션을 통해 유지됩니다.

-- Register-ScheduledJob 및 Set-ScheduledJob에 대한 RunNow 매개 변수를 사용하면 Trigger 매개 변수를 통해 작업의 즉각적인 시작 날짜 및 시간을 설정할 필요가 없습니다.

-- Invoke-RestMethod 및 Invoke-WebRequest를 통해 Headers 매개 변수를 사용하여 모든 헤더를 설정할 수 있습니다. 이 매개 변수는 이전에도 있었지만 예외 또는 오류를 발생하는 웹 cmdlet의 여러 매개 변수 중 하나였습니다.

-- Get-Module에는 ModuleSpecification[]형식의 새로운 매개 변수인 FullyQualifiedName이 있습니다. Get-Module의 FullyQualifiedName 매개 변수를 통해 모듈 이름, 버전 및 GUID를 사용하여 모듈을 지정할 수 있습니다.

-- Windows Server 2012 R2에 대한 기본 실행 정책 설정은 RemoteSigned입니다. Windows 8.1에서는 기본 설정에 변경 사항이 없습니다.

-- Windows PowerShell 4.0부터 동적 메서드 이름을 통한 메서드 호출이 지원됩니다. 변수를 사용하여 메서드 이름을 저장한 다음 변수를 호출하여 메서드를 동적으로 호출할 수 있습니다.

-- PSElapsedTimeoutSec 워크플로 일반 매개 변수로 지정한 시간 제한 기간이 경과해도 비동기 워크플로는 더 이상 삭제되지 않습니다.

-- 새 매개 변수 RepeatIndefinitely가 New-JobTrigger 및 Set-JobTrigger cmdlet에 추가되었습니다. 이 매개 변수를 사용하면 예약된 작업을 무기한 동안 되풀이해서 실행하기 위해 RepetitionDuration 매개 변수에 TimeSpan.MaxValue 값을 지정할 필요가 없습니다.

-- Passthru 매개 변수가 Enable-JobTrigger 및 Disable-JobTrigger cmdlet에 추가되었습니다. Passthru 매개 변수는 명령에서 만들었거나 수정한 개체를 표시합니다.

-- Add-Computer 및 Remove-Computer cmdlet에서 작업 그룹을 지정하는 매개 변수 이름이 이제 일치합니다. 이제 두 cmdlet 모두 WorkgroupName 매개 변수를 사용합니다.

-- 새 일반 매개 변수 PipelineVariable이 추가되었습니다. PipelineVariable을 사용하여 파이프된 명령의 결과 또는 파이프된 명령의 일부를 나머지 파이프라인을 통해 전달할 수 있는 변수로 저장할 수 있습니다.

-- 이제 메서드 구문을 사용한 컬렉션 필터링이 지원됩니다. 즉, Where() 또는 Where-Object의 경우처럼 메서드 호출로 서식 지정된 간소화된 구문을 사용하여 개체 모음을 필터링할 수 있습니다. 예를 들면 다음과 같습니다. (Get-Process).where({$_.Name -match 'powershell'})

-- Get-Process cmdlet에는 IncludeUserName이라는 새 스위치 매개 변수가 있습니다.

-- 파일 해시 정보를 가져오는 Get-FileHash라는 새 cmdlet이 추가되었습니다.

-- Windows PowerShell 4.0에서 모듈의 매니페스트에 DefaultCommandPrefix 키가 사용되거나 사용자가 Prefix 매개 변수를 사용하여 모듈을 가져오면 모듈의 ExportedCommands 속성이 모듈의 명령을 접두사와 함께 표시합니다. 모듈의 정규화된 구문 ModuleName\CommandName을 사용하여 명령을 실행할 경우 명령 이름에 접두사를 포함해야 합니다.

-- $PSVersionTable.PSVersion 값이 4.0으로 업데이트되었습니다.

-- Where() 연산자 동작이 변경되었습니다. "Property –CompareOperator Value" 형식의 문자열 식을 받아들이는 Collection.Where('property –match name')는 더 이상 지원되지 않습니다. 그러나 Where() 연산자는 scriptblock 형식의 문자열 식을 허용합니다. 이 연산자는 여전히 지원됩니다.

Windows PowerShell 워크플로

System Center Orchestrator에 사용된 것과 같은 반복 파이프라인 즉, 스트리밍을 사용하여 섞어서 실행하지 않고 왼쪽에서 오른쪽으로 실행하는 파이프라인의 컨텍스트에서 새 PipelineVariable 일반 매개 변수에 대한 지원이 추가되었습니다.

-- 현재 runspace에 없는 명령을 사용하는 경우처럼 탭 완성 시나리오를 벗어나서 작동하도록 매개 변수 바인딩이 크게 향상되었습니다.

-- 사용자 지정 컨테이너 활동에 대한 지원이 Windows PowerShell 워크플로에 추가되었습니다. 활동 매개 변수가 Activity, Activity[] 형식이거나 제네릭 활동 컬렉션이고 사용자가 인수로 스크립트 블록을 제공하면 일반 Windows PowerShell 스크립트-워크플로 컴파일을 사용하는 것과 같이 Windows PowerShell 워크플로가 스크립트 블록을 XAML로 변환합니다.

-- 작동 중단 후에 Windows PowerShell 워크플로는 자동으로 관리되는 노드에 다시 연결됩니다.

-- 이제 ThrottleLimit 속성을 사용하여 Foreach -Parallel 활동 문을 제한할 수 있습니다.

-- ErrorAction 일반 매개 변수에는 워크플로에만 사용하는 "Suspend"라는 새로운 유효 값이 있습니다.

-- 이제 활성 세션, 진행 중인 작업 및 보류 중인 작업이 없는 경우 워크플로 끝점이 자동으로 닫힙니다. 자동 종료 조건이 충족될 경우 이 기능은 워크플로 서버 역할을 하는 컴퓨터의 리소스를 절약합니다.

Windows PowerShell ISE(통합 스크립팅 환경)

-- Windows PowerShell ISE에서는 Windows PowerShell 워크플로 디버깅과 원격 스크립트 디버깅을 둘 다 지원합니다.

-- Windows PowerShell 원하는 상태 구성 공급자 및 구성에 대한 IntelliSense 지원이 추가되었습니다.

Windows PowerShell Web Services(관리 OData IIS 확장)

-- cmdlet이 실행되는 동안 PSWS에서 오류가 발생하면 호출자에 자세한 오류 메시지가 반환됩니다. 또한 오류 코드가 Microsoft Azure REST API 오류 코드 지침(https://msdn.microsoft.com/library/windowsazure/dd179357.aspx)을 따릅니다.

-- 이제 끝점에서 API 버전을 정의하고 특정 API 버전을 강제로 사용할 수 있습니다. 클라이언트와 서버의 버전이 일치하지 않을 경우 항상 클라이언트와 서버 모두에 오류가 표시됩니다.

-- 스키마에서 누락된 필드에 대한 값을 자동으로 생성하여 디스패치 스키마 관리를 간소화했습니다. 디스패치 스키마가 없는 경우에도 유용한 시작점으로 생성됩니다.

-- Windows PowerShell의 PSTypeConverter와 비슷하게 동작하여 기본 생성자가 아닌 다른 생성자를 사용하는 형식을 지원하도록 PSWS의 형식 처리가 향상되었습니다. 따라서 PSWS에서 복잡한 형식을 사용할 수 있습니다.

-- 이제 쿼리를 실행하는 동안 PSWS에서 연결된 인스턴스를 확장할 수 있습니다.

-- 대용량 이진 콘텐츠(예: 이미지, 오디오, 비디오)의 경우 높은 전송 비용이 발생하므로 인코딩하지 않고 이진 데이터를 전송하는 것이 좋습니다. PSWS에서는 인코딩하지 않고 전송하기 위해 명명된 리소스 스트림을 사용합니다. 명명된 리소스 스트림은 Edm.Stream 형식 엔터티의 속성입니다. 각 명명된 리소스 스트림에서는 GET 또는 UPDATE 작업에 대해 별도의 URI를 사용합니다.

-- 이제 OData 작업을 사용하여 리소스에서 CRUD(Create, Read, Update, Delete) 이외의 메서드를 호출할 수 있습니다. HTTP POST 요청을 작업에 대해 정의된 URI에 전송하여 작업을 호출할 수 있습니다. 작업에 대한 매개 변수를 POST 요청의 본문에 정의되어 있습니다.

-- Azure 지침을 준수하려면 모든 URL을 간소화해야 합니다. Key As Segment에 포함된 변경에 따라 단일 키를 세그먼트로 표시할 수 있습니다. 앞에 표시된 것처럼 여러 키 값을 사용하는 참조에서는 쉼표로 구분된 값을 괄호로 묶어서 표기해야 합니다.

-- 이 PSWS 이전 릴리스에서는 만들기, 업데이트 또는 삭제 작업을 수행하려면 최상위 리소스에서 Post, Put 또는 Delete를 호출해야 했습니다. 이 PSWS 릴리스의 새로운 기능인 "포함된 리소스" 작업을 사용하면 동일한 리소스에 직접 연결하지 않은 상태에서도 해당 리소스가 포함된 경우와 동일한 결과를 얻을 수 있습니다.

Windows PowerShell 웹 액세스를 통해 Windows Server 2012 R2에 대한 다음과 같은 새로운 기능이 추가되었습니다.

-- 웹 기반 Windows PowerShell 웹 액세스 콘솔에서 기존 세션에 대한 연결을 끊었다가 다시 연결할 수 있습니다. 웹 기반 콘솔에서 저장 단추를 사용하면 세션을 삭제하지 않고 세션에서 연결을 끊었다가 나중에 세션에 다시 연결할 수 있습니다.

-- 기본 매개 변수를 로그인 페이지에 표시할 수 있습니다. 기본 매개 변수를 표시하려면 web.config 파일에서 로그인 페이지의 옵션 연결 옵션 영역에 표시된 모든 설정에 대한 값을 구성합니다. web.config 파일을 사용하여 두 번째 또는 대체 자격 증명 집합을 제외한 모든 선택적 연결 설정을 구성할 수 있습니다.

-- Windows Server 2012 R2에서 Windows PowerShell 웹 액세스에 대한 권한 부여 규칙을 원격으로 관리할 수 있습니다. 이제 Add-PswaAuthorizationRule 및 Test-PswaAuthorizationRule cmdlet에는 관리자가 원격 컴퓨터 또는 Windows PowerShell 웹 액세스 세션에서 권한 부여 규칙을 관리하는 데 사용할 수 있는 Credential 매개 변수가 포함됩니다.

-- 이제 세션마다 새로운 브라우저 탭을 사용하여 단일 브라우저 세션에 여러 Windows PowerShell 웹 액세스 세션을 포함할 수 있습니다. 웹 기반 Windows PowerShell 콘솔에서 새 세션에 연결하기 위해 더 이상 새 브라우저 세션을 열 필요가 없습니다.

주목할 만한 버그 수정

Windows PowerShell 4.0에 포함된 일부 버그 수정은 다음과 같습니다.

-- 이제 Get-Counter는 프랑스어 버전 Windows에서 아포스트로피 문자를 포함하는 카운터를 반환할 수 있습니다.

-- 이제 역직렬화된 개체에서 GetType 메서드를 볼 수 있습니다.

-- #Requires 문을 통해 사용자가 관리자 권한으로 세션을 실행하도록 할 수 있습니다(관리자 권한으로 실행).

-- Import-Csv cmdlet이 빈 줄을 무시합니다.

-- Invoke-WebRequest 명령을 실행하는 동안 Windows PowerShell ISE가 너무 많은 메모리를 사용하는 문제가 수정되었습니다.

-- 이제 Get-Module은 Version 열에 모듈 버전을 표시합니다.

-- Remove-Item –Recurse는 이제 예상대로 하위 폴더에서 항목을 제거합니다.

-- UserName 속성이 Get-Process 출력 개체에 추가되었습니다.

-- Invoke-RestMethod cmdlet은 이제 모든 사용 가능한 결과를 반환합니다.

-- 아직 해시 테이블에 액세스하지 않았더라도 Add-Member가 해시 테이블에 적용됩니다.

-- Select-Object –Expand는 속성 값이 null이거나 비어 있는 경우 더 이상 실패하거나 예외를 생성하지 않습니다.

-- 이제 개체에서 ComputerName 속성을 가져오는 기타 명령과 함께 파이프라인에서 Get-Process를 사용할 수 있습니다.

-- 이제 ConvertTo-Json 및 ConvertFrom-Json은 큰따옴표로 묶은 용어를 받아들일 수 있고 오류 메시지를 지역화할 수 있습니다.

-- 이제 Get-Job은 새 세션에서도 완료된 예약 작업을 반환합니다.

-- Windows PowerShell에서 FileSystem 공급자를 사용하여 VHD를 마운트 및 마운트 해제할 때 발생하는 문제가 수정되었습니다. 이제 Windows PowerShell에서는 VHD가 같은 세션에서 마운트될 때 새 드라이브를 감지할 수 있습니다.

-- 이제 작업 유형을 사용하기 위해 더 이상 ScheduledJob 또는 Workflow 모듈을 명시적으로 로드할 필요가 없습니다.

-- 중첩된 워크플로를 정의하는 워크플로를 가져오는 프로세스의 성능이 향상되어, 이제 프로세스가 더 빨라졌습니다.

Windows PowerShell 4.0에 대한 자세한 내용은 다음 웹 사이트를 방문하세요.

-- Windows PowerShell 웹 사이트 https://go.microsoft.com/fwlink/?LinkID=106031

-- Windows PowerShell 팀 블로그: https://go.microsoft.com/fwlink/?LinkId=143696

-- Windows PowerShell 웹 액세스 https://technet.microsoft.com/library/hh831611.aspx

참고 항목

about_Debuggers

about_Desired_State_Configuration

about_Scheduled_Jobs

about_Updatable_Help

Add-Computer

Disable-JobTrigger

Enable-JobTrigger

Get-Module

Get-Process

Invoke-RestMethod

New-JobTrigger

Register-ScheduledJob

Remove-Computer

Save-Help

Set-ExecutionPolicy

Set-JobTrigger

Set-ScheduledJob

Update-Help

키워드

Windows PowerShell 4.0의 새로운 기능