다음을 통해 공유


Windows PowerShell 속성 제공자 생성

이 주제는 사용자가 데이터 저장소 내 항목의 속성을 조작할 수 있도록 제공하는 공급자를 만드는 방법을 설명합니다. 따라서 이러한 유형의 제공자를 Windows PowerShell 속성 제공자라고 부릅니다. 예를 들어, Windows PowerShell에서 제공하는 레지스트리 제공자는 레지스트리 키 값을 레지스트리 키 항목의 속성으로 처리합니다. 이 유형의 제공자는 .NET 클래스 구현에 System.Management.Automation.Provider.IPropertyCmdletProvider 인터페이스를 추가해야 합니다.

비고

Windows PowerShell은 Windows PowerShell 제공자를 개발하는 데 사용할 수 있는 템플릿 파일을 제공합니다. TemplateProvider.cs 파일은 Microsoft Windows 소프트웨어 개발 키트(Windows Vista 및 .NET Framework 3.0 런타임 컴포넌트)에서 이용할 수 있습니다. 다운로드 방법은 Windows PowerShell 설치 방법과 Windows PowerShell SDK를 다운로드하세요. 다운로드한 템플릿은 PowerShell Samples> 디렉토리에서< 이용할 수 있습니다. 이 파일을 복사해서 새 Windows PowerShell 제공자를 만드는 데 사용하세요. 필요 없는 기능은 제거하세요. 다른 Windows PowerShell 제공자 구현에 대한 자세한 내용은 'Windows PowerShell Provider를 설계하기'를 참조하세요.

주의

속성 제공자의 메서드는 System.Management.Automation.Provider.CmdletProvider.Writepropertyobject* 메서드를 사용해 객체를 작성해야 합니다.

Windows PowerShell 제공자 정의

속성 제공자는 System.Management.Automation.Provider.IPropertyCmdletProvider 인터페이스를 지원하는 .NET 클래스를 생성해야 합니다. 다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일의 기본 클래스 선언입니다.

기본 기능 정의

System.Management.Automation.Provider.IPropertyCmdletProvider 인터페이스는 System.Management.Automation.Provider.DriveCmdletProvider 클래스를 제외한 모든 제공자 기본 클래스에 연결할 수 있습니다. 사용 중인 기본 클래스에서 요구하는 기본 기능을 추가하세요. 기본 클래스에 대한 자세한 내용은 'Windows PowerShell Provider를 설계하기'를 참조하세요.

속성 조회

속성을 가져오려면, 제공자는 명령어 호출 Get-ItemProperty 을 지원하기 위해 System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 메서드를 구현해야 합니다. 이 방법은 지정된 제공자-내부 경로(완전 정식 경로)에 위치한 항목의 속성을 가져옵니다.

매개변수는 providerSpecificPickList 어떤 속성을 가져와야 함을 나타냅니다. 이 매개변수가 null 또는 비어 있으면 메서드는 모든 속성을 가져와야 합니다. 또한, System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 는 가져온 속성의 속성 가방을 나타내는 System.Management.Automation.PSObject 객체의 인스턴스를 작성합니다. 메서드는 아무것도 반환하지 않을 것입니다.

System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 구현은 선택 리스트 내 각 요소에 대해 속성 이름의 와일드카드 확장을 지원하는 것이 권장됩니다. 이를 위해 System.Management.Automation.WildcardPattern 클래스를 사용하여 와일드카드 패턴 매칭을 수행합니다.

다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 가져온 System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 의 기본 구현입니다.

GetProperty 구현 시 기억해야 할 사항

System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 구현에 다음과 같은 조건이 적용될 수 있습니다:

동적 매개변수를 Get-ItemProperty 커들렛에 부착하기

cmdlet은 Get-ItemProperty 런타임에 동적으로 지정되는 추가 매개변수를 요구할 수 있습니다. 이러한 동적 매개변수를 제공하기 위해 Windows PowerShell 속성 제공자는 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 메서드를 구현해야 합니다. 매개변수는 path 완전 자격화된 제공자 내부 경로를 나타내고, 매개변수는 providerSpecificPickList 명령줄에 입력된 공급자별 속성을 지정합니다. 이 매개변수는 속성이 명령어에 파이프되어 있다면 비 null 어 있을 수 있습니다. 이 경우, 이 메서드는 cmdlet 클래스나 System.Management.Automation.RuntimeDefinedParameterDictionary 객체와 유사한 파싱 속성을 가진 속성과 필드를 반환합니다. Windows PowerShell 런타임은 반환된 객체를 사용하여 명령어에 매개변수를 추가합니다.

다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 가져온 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 의 기본 구현입니다.

속성 설정

속성을 설정하려면, Windows PowerShell 속성 제공자는 명령어 호출 Set-ItemProperty 을 지원하기 위해 System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 메서드를 구현해야 합니다. 이 메서드는 지정된 경로에 항목의 하나 이상의 속성을 설정하고, 필요에 따라 제공된 속성을 덮어씁니다. System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 는 업데이트된 속성의 속성 가방을 나타내는 System.Management.Automation.PSObject 객체의 인스턴스도 작성합니다.

다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 가져온 System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 의 기본 구현입니다.

Set-ItemProperty 도입 시 기억해야 할 점들

System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 구현에 다음과 같은 조건이 적용될 수 있습니다:

Set-ItemProperty 커들릿에 동적 파라미터 부착하기

cmdlet은 Set-ItemProperty 런타임에 동적으로 지정되는 추가 매개변수를 요구할 수 있습니다. 이러한 동적 매개변수를 제공하기 위해 Windows PowerShell 속성 제공자는 System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters* 메서드를 구현해야 합니다. 이 메서드는 cmdlet 클래스나 System.Management.Automation.RuntimeDefinedParameterDictionary 객체와 유사한 파싱 속성을 가진 속성과 필드를 반환합니다. null 동적 매개변수를 추가하지 않을 경우 값을 반환할 수 있습니다.

다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 가져온 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 의 기본 구현입니다.

정화 속성

속성을 삭제하려면, Windows PowerShell 속성 제공자는 명령어 호출 Clear-ItemProperty 을 지원하기 위해 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 메서드를 구현해야 합니다. 이 메서드는 지정된 경로에 위치한 항목에 대해 하나 이상의 속성을 설정합니다.

다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 나온 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 의 기본 구현입니다.

ClearProperty 도입 시 기억해야 할 점

System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 구현에 다음과 같은 조건이 적용될 수 있습니다:

동적 매개변수를 Clear-ItemProperty 커들렛에 부착하기

cmdlet은 Clear-ItemProperty 런타임에 동적으로 지정되는 추가 매개변수를 요구할 수 있습니다. 이러한 동적 매개변수를 제공하기 위해 Windows PowerShell 속성 제공자는 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* 메서드를 구현해야 합니다. 이 메서드는 cmdlet 클래스나 System.Management.Automation.RuntimeDefinedParameterDictionary 객체와 유사한 파싱 속성을 가진 속성과 필드를 반환합니다. null 동적 매개변수를 추가하지 않을 경우 값을 반환할 수 있습니다.

다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 가져온 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* 의 기본 구현입니다.

Windows PowerShell 제공자 구축

Cmdlet, Providers, Hosting 애플리케이션 등록 방법을 참조하세요.

또한 참조하십시오

Windows PowerShell 제공자

Windows PowerShell 제공자를 설계하세요

객체 유형 및 서식 확장

Cmdlet, 제공자 및 호스트 애플리케이션 등록 방법