다음을 통해 공유


공급자 정보

간단한 설명

PowerShell 공급자가 명령줄에서 쉽게 액세스할 수 없는 데이터 및 구성 요소에 대한 액세스를 제공하는 방법을 설명합니다. 데이터는 파일 시스템 드라이브와 유사한 일관된 형식으로 표시됩니다.

자세한 설명입니다.

PowerShell 공급자는 PowerShell에서 특수 데이터 저장소의 데이터를 보고 관리할 수 있도록 하는 Microsoft .NET Framework 기반 프로그램입니다.

공급자가 노출하는 데이터는 드라이브에 표시되며 하드 디스크 드라이브와 같은 경로의 데이터에 액세스합니다. 공급자가 지원하는 기본 제공 cmdlet을 사용하여 공급자 드라이브의 데이터를 관리할 수 있습니다. 또한 데이터를 위해 특별히 설계된 사용자 지정 cmdlet을 사용할 수 있습니다.

공급자는 기본 제공 cmdlet에 동적 매개 변수를 추가할 수도 있습니다. 이는 공급자 데이터와 함께 cmdlet을 사용하는 경우에만 사용할 수 있는 매개 변수입니다.

기본 제공 공급자

PowerShell에는 다양한 유형의 데이터 저장소에 액세스하는 데 사용할 수 있는 기본 제공 공급자 집합이 포함되어 있습니다.

공급자 드라이브 데이터 저장소
Alias 별칭: PowerShell 별칭
인증서 인증서: 디지털 서명에 대한 x509 인증서
환경 Env: Windows 환경 변수
FileSystem (*) 파일 시스템 드라이브, 디렉터리 및 파일
함수 함수: PowerShell 함수
레지스트리 HKLM:, HKCU: Windows 레지스트리
변수 변수: PowerShell 변수
WSMan WSMan: WS-Management 구성 정보

(*) FileSystem 드라이브는 각 시스템에 따라 다릅니다.

고유한 PowerShell 공급자를 만들고 다른 사용자가 개발하는 공급자를 설치할 수도 있습니다. 세션에서 사용할 수 있는 공급자를 나열하려면 다음을 입력합니다.

Get-PSProvider

공급자 설치 및 제거

PowerShell 공급자는 .dll 파일로 컴파일되는 .NET Framework 기반 프로그램인 PowerShell 스냅인에서 사용자에게 제공됩니다. 스냅인에는 공급자 및 cmdlet이 포함될 수 있습니다.

공급자 기능을 사용하기 전에 스냅인을 설치한 다음 PowerShell 세션에 추가해야 합니다. 자세한 내용은 about_PSSnapins 참조하세요.

현재 세션에서 공급자에 대한 PowerShell 스냅인을 제거할 수 있지만 공급자를 제거할 수는 없습니다. 이렇게 하면 해당 cmdlet을 포함하여 스냅인의 모든 콘텐츠를 제거합니다.

현재 세션에서 공급자를 제거하려면 cmdlet을 Remove-PSSnapin 사용합니다. 이 cmdlet은 공급자를 제거하지 않지만 세션에서 공급자를 사용할 수 없게 만듭니다.

cmdlet을 Remove-PSDrive 사용하여 현재 세션에서 드라이브를 제거할 수도 있습니다. 드라이브의 이 데이터는 영향을 받지 않지만 해당 세션에서 드라이브를 더 이상 사용할 수 없습니다.

공급자 보기

컴퓨터에서 PowerShell 공급자를 보려면 다음을 입력합니다.

Get-PSProvider

출력에는 기본 제공 공급자 및 세션에 추가한 공급자가 나열됩니다.

공급자 cmdlet

다음 cmdlet은 공급자가 노출하는 데이터와 함께 작동하도록 설계되었습니다. 동일한 방법으로 동일한 cmdlet을 사용하여 공급자가 노출하는 다양한 유형의 데이터를 관리할 수 있습니다. 한 공급자의 데이터를 관리하는 방법을 학습한 후에는 공급자의 데이터와 동일한 절차를 사용할 수 있습니다.

예를 들어 cmdlet은 New-Item 새 항목을 만듭니다. C:FileSystem 공급자가 지원하는 드라이브에서 를 사용하여 New-Item 새 파일 또는 폴더를 만들 수 있습니다. 레지스트리 공급자가 지원하는 드라이브에서 를 사용하여 New-Item 새 레지스트리 키를 만들 수 있습니다. 드라이브에서 Alias: 를 사용하여 New-Item 새 별칭을 만들 수 있습니다.

다음 cmdlet에 대한 자세한 내용은 다음을 입력합니다.

Get-Help <cmdlet-name> -Detailed

ChildItem cmdlet

콘텐츠 Cmdlet

항목 Cmdlet

ItemProperty cmdlet

위치 cmdlet

경로 cmdlet

PSDrive cmdlet

PSProvider Cmdlet

공급자 데이터 보기

공급자의 주요 이점은 친숙하고 일관된 방식으로 데이터를 노출한다는 것입니다. 데이터 프레젠테이션 모델은 파일 시스템 드라이브입니다.

공급자가 노출하는 데이터를 사용하려면 해당 데이터를 보고, 이동하고, 하드 드라이브의 데이터인 것처럼 변경합니다. 따라서 공급자에 대한 가장 중요한 정보는 공급자가 지원하는 드라이브의 이름입니다.

드라이브는 cmdlet의 기본 표시에 Get-PSProvider 나열되지만 cmdlet을 사용하여 Get-PSDrive 공급자 드라이브에 대한 정보를 가져올 수 있습니다. 예를 들어 Function: drive의 모든 속성을 얻으려면 다음을 입력합니다.

Get-PSDrive Function | Format-List *

파일 시스템 드라이브에서와 마찬가지로 공급자 드라이브의 데이터를 보고 이동할 수 있습니다.

공급자 드라이브의 콘텐츠를 보려면 Get-Item 또는 Get-ChildItem cmdlet을 사용합니다. 드라이브 이름 뒤에 콜론(:)을 입력합니다. 예를 들어 별칭: 드라이브의 내용을 보려면 다음을 입력합니다.

Get-Item alias:

경로에 드라이브 이름을 포함하여 다른 드라이브의 모든 드라이브에서 데이터를 보고 관리할 수 있습니다. 예를 들어 HKLM: 다른 드라이브의 드라이브에서 HKLM\Software 레지스트리 키를 보려면 다음을 입력합니다.

Get-ChildItem HKLM:\SOFTWARE\

드라이브를 열려면 Set-Location cmdlet을 사용합니다. 드라이브 경로를 지정할 때 콜론을 기억합니다. 예를 들어 위치를 Cert: 드라이브의 루트 디렉터리로 변경하려면 다음을 입력합니다.

Set-Location cert:

그런 다음 Cert: 드라이브의 내용을 보려면 다음을 입력합니다.

Get-ChildItem

계층적 데이터 이동

하드 디스크 드라이브와 마찬가지로 공급자 드라이브를 통해 이동할 수 있습니다. 데이터가 항목 내 항목의 계층 구조에 정렬된 경우 백슬래시(\)를 사용하여 자식 항목을 나타냅니다. 이때 다음 형식을 사용합니다.

drive:\location\child-location\...

예를 들어 위치를 HKLM\Software 레지스트리 키로 변경하려면 다음과 같은 Set-Location 명령을 입력합니다.

Set-Location HKLM:\SOFTWARE\

위치에 대한 상대 참조를 사용할 수도 있습니다. 점(.)은 현재 위치를 나타냅니다. 예를 들어 HKLM:\Software\Microsoft 레지스트리 키에 있고 HKLM:\Software\Microsoft\PowerShell 키에 레지스트리 하위 키를 나열하려는 경우 다음 명령을 입력합니다.

Get-ChildItem .\PowerShell

공급자 홈

공급자에는 위치도 있습니다. 이 위치는 공급자가 PSDrives 모두 백업하여 공유합니다. 공급자의 Home 속성을 확인하여 검색할 수 있습니다.

Get-PSProvider | Format-Table Name, Home
Name        Home
----        ----
Registry
Alias
Environment
FileSystem  C:\Users\robreed
Function
Variable
Certificate

FileSystem 공급자는 Home의 기본값이 있는 유일한 공급자입니다. about_Automatic_Variables 참조와 $Home 동일한 값입니다.

해당 속성을 사용하여 현재 세션에 대해 공급자의 디렉터리를 설정할 수 있습니다.

(Get-PSProvider FileSystem).Home = "C:\"

~ 문자를 사용하여 공급자의 홈 디렉터리를 나타낼 수 있습니다. 공급자에 위치 집합이 없는 경우 오류가 표시됩니다.

Cert:\> Set-Location ~
Set-Location : Home location for this provider is not set. To set the home
location, call "(get-psprovider 'Certificate').Home = 'path'".
At line:1 char:1
+ Set-Location ~
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [Set-Location],
                              PSInvalidOperationException
...

동적 매개 변수 찾기

동적 매개 변수는 공급자가 cmdlet에 추가하는 cmdlet 매개 변수입니다. 이러한 매개 변수는 cmdlet을 추가한 공급자와 함께 사용하는 경우에만 사용할 수 있습니다.

예를 들어 드라이브는 Cert:Get-ChildItem cmdlet에 CodeSigningCert 매개 변수를 Get-Item 추가합니다. 드라이브에서 또는 Get-ChildItem 를 사용하는 경우에만 이 매개 변수를 Cert: 사용할 Get-Item 수 있습니다.

공급자가 지원하는 동적 매개 변수 목록은 공급자에 대한 도움말 파일을 참조하세요. 유형:

Get-Help <provider-name>

예를 들면 다음과 같습니다.

Get-Help certificate

공급자에 대한 학습

모든 공급자 데이터가 드라이브에 표시되고 동일한 메서드를 사용하여 이동하더라도 유사성은 중지됩니다. 공급자가 노출하는 데이터 저장소는 Active Directory 위치 및 Microsoft Exchange Server 사서함만큼 다양할 수 있습니다.

개별 PowerShell 공급자에 대한 자세한 내용은 다음을 입력합니다.

Get-Help <ProviderName>

예를 들면 다음과 같습니다.

Get-Help registry

공급자에 대한 도움말 topics 목록은 다음을 입력합니다.

Get-Help * -Category Provider

추가 정보

about_Locations

about_Path_Syntax