이 프로그래머 가이드는 시스템 관리자를 위한 명령줄 관리 환경을 제공하고자 하는 개발자들을 대상으로 합니다. Windows PowerShell은 .NET 객체를 노출하는 관리 명령을 간단히 만들 수 있는 방법을 제공하며, Windows PowerShell이 대부분의 작업을 대신 처리하도록 합니다.
전통적인 명령어 개발에서는 매개변수 파서, 매개변수 바인더, 필터 및 각 명령어가 제공하는 모든 기능을 작성해야 합니다. Windows PowerShell은 명령어 작성이 쉽게 되도록 다음과 같은 기능을 제공합니다:
자체 파서와 자동 명령 매개변수 바인딩 메커니즘을 갖춘 강력한 Windows PowerShell 런타임(실행 엔진)입니다.
명령줄 인터프리터(CLI)를 사용하여 명령 결과를 포맷하고 표시하는 유틸리티.
Windows PowerShell 제공자를 통한 고수준 기능 지원으로 저장된 데이터에 쉽게 접근할 수 있습니다.
적은 비용으로, .NET 객체를 풍부한 명령어나 명령어 집합으로 표현할 수 있어 관리자에게 완전한 명령줄 경험을 제공합니다.
다음 섹션에서는 Windows PowerShell의 주요 개념과 용어를 다룹니다. 개발을 시작하기 전에 이 개념들과 용어들을 익히세요.
Windows PowerShell에 대하여
Windows PowerShell은 개발에 사용할 수 있는 여러 종류의 명령어를 정의합니다. 이 명령어에는 함수, 필터, 스크립트, 별칭, 실행 파일(애플리케이션)이 포함됩니다. 이 가이드에서 다루는 주요 명령 유형은 'cmdlet'이라 불리는 간단하고 작은 명령어입니다. Windows PowerShell은 커들렛 집합을 제공하며, 환경에 맞게 커스터마이징을 완벽하게 지원합니다. Windows PowerShell 런타임은 모든 명령 유형을 파이프라인을 통해 명령어 유형을 명령어 처리하듯 명령어를 처리합니다.
명령어 외에도 Windows PowerShell은 특정 명령어 집합을 제공하는 다양한 사용자 지정 가능한 Windows PowerShell 제공자를 지원합니다. 셸은 Windows PowerShell이 제공하는 호스트 애플리케이션 내에서 작동하지만,powershell.exe 특정 요구사항을 충족하기 위해 개발할 수 있는 맞춤형 호스트 애플리케이션에서도 동일하게 접근할 수 있습니다. 자세한 내용은 Windows PowerShell 작동 방식을 참조하세요.
Windows PowerShell Cmdlets
cmdlet은 Windows PowerShell 환경에서 사용되는 경량 명령어입니다. Windows PowerShell 런타임은 명령줄에서 제공되는 자동화 스크립트 맥락 내에서 이러한 cmdlet을 호출하며, Windows PowerShell 런타임은 Windows PowerShell API를 통해 프로그래밍적으로 호출하기도 합니다.
cmdlet에 대한 자세한 내용은 'Windows PowerShell Cmdlet 작성'을 참조하세요.
Windows PowerShell Providers
관리자 작업을 수행할 때 사용자는 파일 시스템, 윈도우 레지스트리, 인증서 저장소 등 데이터 저장소에 저장된 데이터를 검사해야 할 수 있습니다. 이러한 작업을 더 쉽게 하기 위해 Windows PowerShell은 Windows 레지스트리와 같은 특정 데이터 저장소에 접근할 수 있는 Windows PowerShell 제공자라는 모듈을 정의합니다. 각 제공자는 저장소 내 데이터를 대칭적으로 볼 수 있도록 관련 명령어 집합을 지원합니다.
Windows PowerShell은 여러 기본 Windows PowerShell 제공자를 제공합니다. 예를 들어, 레지스트리 제공자는 윈도우 레지스트리의 탐색과 조작을 지원합니다. 레지스트리 키는 항목으로 표현되며, 레지스트리 값은 속성으로 취급됩니다.
사용자가 접근해야 할 데이터 저장소를 노출한다면, Windows PowerShell 제공자 생성에 설명된 대로 직접 Windows PowerShell 제공자를 작성해야 할 수도 있습니다. Windows PowerShell 제공자에 대한 자세한 내용은 Windows PowerShell 작동 방식을 참조하세요.
호스트 애플리케이션
Windows PowerShell에는 기본 호스트 애플리케이션 powershell.exe포함되어 있으며, 이는 사용자와 상호작용하며 콘솔 윈도우 윈도우 윈도우 런타임을 호스팅하는 콘솔 애플리케이션입니다.
Windows PowerShell용 호스트 애플리케이션을 직접 작성해야 하는 경우는 드물지만, 맞춤화는 지원합니다. 자체 애플리케이션이 필요할 수 있는 한 가지 경우는 기본 호스트 애플리케이션이 제공하는 인터페이스보다 더 풍부한 GUI 인터페이스가 필요할 때입니다. 명령줄 기반 GUI를 만들 때는 커스텀 애플리케이션도 필요해요. 자세한 내용은 Windows PowerShell 호스트 애플리케이션 생성 방법을 참조하세요.
Windows PowerShell 런타임
Windows PowerShell 런타임은 명령 처리를 구현하는 실행 엔진입니다. 호스트 애플리케이션과 Windows PowerShell 명령어 및 제공자 간의 인터페이스를 제공하는 클래스들을 포함합니다. Windows PowerShell 런타임은 현재 Windows PowerShell 세션의 런스페이스 객체로 구현되며, 이 세션은 셸과 명령어가 실행되는 운영 환경입니다. 운영 세부사항은 Windows PowerShell 작동 방식을 참조하세요.
Windows PowerShell 언어
Windows PowerShell 언어는 명령어를 호출하는 스크립트 기능과 메커니즘을 제공합니다. 완전한 스크립팅 정보는 Windows PowerShell에 함께 제공된 Windows PowerShell 언어 참조를 참조하세요.
ETS(확장 형식 시스템)
Windows PowerShell은 .NET과 XML 객체 등 다양한 객체에 접근할 수 있게 합니다. 결과적으로, 모든 객체 유형에 대한 공통 추상화를 제시하기 위해 셸은 확장 타입 시스템(ETS)을 사용합니다. 대부분의 ETS 기능은 사용자에게 투명하지만, 스크립트나 .NET 개발자는 다음과 같은 목적으로 이를 사용합니다:
특정 객체의 일부 구성원을 보는 것. Windows PowerShell은 여러 특정 객체 유형에 대한 "적응된" 뷰를 제공합니다.
기존 객체에 멤버를 추가하기.
직렬화된 객체에 접근할 수 있습니다.
맞춤형 객체를 작성하는 것.
ETS를 사용하면 Windows PowerShell 언어와 호환되는 유연한 새로운 "타입"을 만들 수 있습니다. .NET 개발자라면, 예를 들어 Windows PowerShell 언어가 스크립트에 적용되는 것과 동일한 의미론을 사용하여 객체가 로 평가되는지
true판단할 수 있습니다.ETS와 Windows PowerShell이 객체를 어떻게 사용하는지에 대한 자세한 내용은 Windows PowerShell Object Concepts를 참조하세요.
Windows PowerShell 프로그래밍
Windows PowerShell은 .NET 프레임워크를 사용하여 명령어, 제공자 및 기타 프로그램 모듈에 대한 코드를 정의합니다. Windows PowerShell용 맞춤형 모듈을 만들 때 Microsoft Visual Studio에만 국한되지 않지만, 이 가이드에 제공된 샘플들은 이 도구에서 실행되는 것으로 알려져 있습니다. 클래스 상속과 속성 사용을 지원하는 .NET 언어는 모두 사용할 수 있습니다. 경우에 따라 Windows PowerShell API는 프로그래밍 언어가 일반 타입에 접근할 수 있도록 요구합니다.
프로그래머의 참고 자료
Windows PowerShell 개발을 위한 참고용으로는 Windows PowerShell SDK를 참고하세요.
Windows PowerShell 사용 시작
Windows PowerShell 셸 사용을 시작하는 방법에 대한 자세한 내용은 'Windows PowerShell 입문( Getting Started with Windows PowerShell with Cops)'을 참고하세요. 또한 cmdlet 사용을 위한 입문서로서 Quick Reference 3-fold 문서도 제공됩니다.
이 가이드의 내용
| 주제 | Definition |
|---|---|
| Windows PowerShell 호스트 애플리케이션 만드는 방법 | 이 섹션에서는 런스페이스를 조작하는 호스트 애플리케이션을 작성하는 방법과 자체 맞춤형 호스트를 구현하는 호스트 애플리케이션을 작성하는 방법을 설명합니다. |
| Windows PowerShell 스냅인 만드는 방법 | 이 섹션에서는 어셈블리 내 모든 cmdlet과 제공자를 등록하는 스냅인을 만드는 방법과 맞춤형 스냅인 생성 방법을 설명합니다. |
| Windows PowerShell 개념 | 이 섹션에는 개발자의 관점에서 Windows PowerShell을 이해하는 데 도움이 되는 개념적 정보가 포함되어 있습니다. |