이 항목에서는 사용자가 데이터 저장소에 있는 항목의 속성을 조작할 수 있도록 하는 공급자를 만드는 방법을 설명합니다. 따라서 이러한 유형의 공급자를 Windows PowerShell 속성 공급자라고 합니다. 예를 들어 Windows PowerShell에서 제공하는 레지스트리 공급자는 레지스트리 키 값을 레지스트리 키 항목의 속성으로 처리합니다. 이 유형의 공급자는 System.Management.Automation.Provider.IPropertyCmdletProvider 인터페이스를 .NET 클래스의 구현에 추가해야 합니다.
비고
Windows PowerShell은 Windows PowerShell 공급자를 개발하는 데 사용할 수 있는 템플릿 파일을 제공합니다. TemplateProvider.cs 파일은 Windows Vista 및 .NET Framework 3.0 런타임 구성 요소용 Microsoft Windows 소프트웨어 개발 키트에서 사용할 수 있습니다. 다운로드 지침은 Windows PowerShell을 설치하고 Windows PowerShell SDK다운로드하는 방법을 참조하세요. 다운로드한 템플릿은 <PowerShell 샘플> 디렉터리에서 사용할 수 있습니다. 이 파일의 복사본을 만들고 이 복사본을 사용하여 새 Windows PowerShell 공급자를 만들고 필요하지 않은 기능을 제거해야 합니다. 다른 Windows PowerShell 공급자 구현에 대한 자세한 내용은 windows PowerShell 공급자 디자인하는참조하세요.
주의
속성 공급자의 메서드는 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 공급자 디자인참조하세요.
속성 검색
속성을 검색하려면 공급자가 Get-ItemProperty
cmdlet의 호출을 지원하도록 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*구현에 적용될 수 있습니다.
공급자 클래스를 정의할 때 Windows PowerShell 속성 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 ExpandWildcards, Filter, Include 또는 Exclude의 공급자 기능을 선언할 수 있습니다. 이러한 경우 System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* 메서드의 구현은 메서드에 전달된 경로가 지정된 기능의 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude* 및 System.Management.Automation.Provider.CmdletProvider.Include* 속성에 액세스해야 합니다.
기본적으로 이 메서드의 재정의는 System.Management.Automation.Provider.CmdletProvider.Force* 속성이
true
설정되지 않는 한 사용자로부터 숨겨진 개체에 대한 판독기를 검색해서는 안 됩니다. 경로가 사용자로부터 숨겨진 항목을 나타내고 System.Management.Automation.Provider.CmdletProvider.Force*false
설정되면 오류를 기록해야 합니다.
Get-ItemProperty Cmdlet에 동적 매개 변수 연결
Get-ItemProperty
cmdlet에는 런타임에 동적으로 지정된 추가 매개 변수가 필요할 수 있습니다. 이러한 동적 매개 변수를 제공하려면 Windows PowerShell 속성 공급자가 system.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 메서드를 구현해야 합니다.
path
매개 변수는 정규화된 공급자 내부 경로를 나타내고 providerSpecificPickList
매개 변수는 명령줄에 입력된 공급자별 속성을 지정합니다. 속성이 cmdlet에 파이프되는 경우 이 매개 변수는 null
또는 비어 있을 수 있습니다. 이 경우 이 메서드는 cmdlet 클래스 또는 System.Management.Automation.RuntimeDefinedParameterDictionary 개체와 유사한 구문 분석 특성이 있는 속성과 필드가 있는 개체를 반환합니다. Windows PowerShell 런타임은 반환된 개체를 사용하여 cmdlet에 매개 변수를 추가합니다.
다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* 기본 구현입니다.
속성 설정
속성을 설정하려면 Windows PowerShell 속성 공급자가 Set-ItemProperty
cmdlet의 호출을 지원하기 위해 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*구현에 적용될 수 있습니다.
공급자 클래스를 정의할 때 Windows PowerShell 속성 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 ExpandWildcards, Filter, Include 또는 Exclude의 공급자 기능을 선언할 수 있습니다. 이러한 경우 System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 메서드의 구현은 메서드에 전달된 경로가 지정된 기능의 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude* 및 System.Management.Automation.Provider.CmdletProvider.Include* 속성에 액세스해야 합니다.
기본적으로 이 메서드의 재정의는 System.Management.Automation.Provider.CmdletProvider.Force* 속성이
true
설정되지 않는 한 사용자로부터 숨겨진 개체에 대한 판독기를 검색해서는 안 됩니다. 경로가 사용자로부터 숨겨진 항목을 나타내고 System.Management.Automation.Provider.CmdletProvider.Force*false
설정되면 오류를 기록해야 합니다.System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 메서드의 구현은 System.Management.Automation.Provider.CmdletProvider.ShouldProcess 호출하고 데이터 저장소를 변경하기 전에 반환 값을 확인해야 합니다. 이 메서드는 시스템 상태를 변경할 때 작업 실행을 확인하는 데 사용됩니다(예: 파일 이름 바꾸기). System.Management.Automation.Provider.CmdletProvider.ShouldProcess Windows PowerShell 런타임을 사용하여 사용자에게 변경할 리소스의 이름을 보내고 표시할 대상을 결정할 때 명령줄 설정 또는 기본 설정 변수를 처리합니다.
System.Management.Automation.Provider.CmdletProvider.ShouldProcess 호출한 후 잠재적으로 위험한 시스템을 수정할 수 있는 경우
true
반환합니다. System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* 메서드는 System.Management.Automation.Provider.CmdletProvider.ShouldContinue 메서드를 호출해야 합니다. 이 메서드는 사용자에게 확인 메시지를 보내 작업을 계속해야 함을 나타내는 추가 피드백을 허용합니다.
Set-ItemProperty Cmdlet에 대한 동적 매개 변수 연결
Set-ItemProperty
cmdlet에는 런타임에 동적으로 지정된 추가 매개 변수가 필요할 수 있습니다. 이러한 동적 매개 변수를 제공하려면 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
cmdlet의 호출을 지원하기 위해 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 메서드를 구현해야 합니다. 이 메서드는 지정된 경로에 있는 항목에 대해 하나 이상의 속성을 설정합니다.
다음은 Windows PowerShell에서 제공하는 TemplateProvider.cs 파일에서 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 기본 구현입니다.
ClearProperty 구현에 대해 기억해야 할 사항
다음 조건은 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty*구현에 적용될 수 있습니다.
공급자 클래스를 정의할 때 Windows PowerShell 속성 공급자는 System.Management.Automation.Provider.ProviderCapabilities 열거형에서 ExpandWildcards, Filter, Include 또는 Exclude의 공급자 기능을 선언할 수 있습니다. 이러한 경우 System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 메서드의 구현은 메서드에 전달된 경로가 지정된 기능의 요구 사항을 충족하는지 확인해야 합니다. 이렇게 하려면 메서드가 적절한 속성(예: System.Management.Automation.Provider.CmdletProvider.Exclude* 및 System.Management.Automation.Provider.CmdletProvider.Include* 속성에 액세스해야 합니다.
기본적으로 이 메서드의 재정의는 System.Management.Automation.Provider.CmdletProvider.Force* 속성이
true
설정되지 않는 한 사용자로부터 숨겨진 개체에 대한 판독기를 검색해서는 안 됩니다. 경로가 사용자로부터 숨겨진 항목을 나타내고 System.Management.Automation.Provider.CmdletProvider.Force*false
설정되면 오류를 기록해야 합니다.System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 메서드의 구현은 System.Management.Automation.Provider.CmdletProvider.ShouldProcess 호출하고 데이터 저장소를 변경하기 전에 반환 값을 확인해야 합니다. 이 메서드는 콘텐츠 지우기와 같은 시스템 상태가 변경되기 전에 작업 실행을 확인하는 데 사용됩니다. System.Management.Automation.Provider.CmdletProvider.ShouldProcess 사용자에게 변경할 리소스의 이름을 보내며, Windows PowerShell 런타임은 표시할 내용을 결정하는 명령줄 설정 또는 기본 설정 변수를 고려합니다.
System.Management.Automation.Provider.CmdletProvider.ShouldProcess 호출한 후 잠재적으로 위험한 시스템을 수정할 수 있는 경우
true
반환합니다. System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* 메서드는 System.Management.Automation.Provider.CmdletProvider.ShouldContinue 메서드를 호출해야 합니다. 이 메서드는 사용자에게 확인 메시지를 보내 잠재적으로 위험한 작업을 계속해야 함을 나타내는 추가 피드백을 허용합니다.
Clear-ItemProperty Cmdlet에 동적 매개 변수 연결
Clear-ItemProperty
cmdlet에는 런타임에 동적으로 지정된 추가 매개 변수가 필요할 수 있습니다. 이러한 동적 매개 변수를 제공하려면 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, 공급자 및 호스트 애플리케이션등록하는 방법을 참조하세요.
또한 참조하십시오
Cmdlet, 공급자 및 호스트 애플리케이션 등록하는 방법
PowerShell