about_Providers

간단한 설명

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

자세한 설명입니다.

PowerShell 공급자는 보다 쉽게 보고 관리할 수 있도록 특수 데이터 저장소에 대한 액세스를 제공하는 .NET 프로그램입니다. 데이터가 드라이브에 표시되고 하드 디스크 드라이브와 마찬가지로 경로의 데이터에 액세스합니다. 공급자가 지원하는 기본 제공 cmdlet을 사용하여 공급자 드라이브의 데이터를 관리할 수 있습니다. 또한 데이터를 위해 특별히 설계된 사용자 지정 cmdlet을 사용할 수 있습니다.

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

기본 제공 공급자

PowerShell에는 다양한 유형의 개체에 대한 액세스를 제공하는 기본 제공 공급자 집합이 포함되어 있습니다.

  • 별칭 공급자
    • 드라이브 - Alias:
    • 개체 형식 - System.Management.Automation.AliasInfo
  • 인증서 공급자
    • 드라이브 - Cert:
    • 개체 형식 - Microsoft.PowerShell.Commands.X509StoreLocation, System.Security.Cryptography.X509Certificates.X509Certificate2
  • 환경 공급자
    • 드라이브 - Env:
    • 개체 형식 - System.Collections.DictionaryEntry
  • FileSystem 공급자
    • 드라이브 - C: 하드웨어에 따라 기타
    • 개체 형식 - System.IO.FileInfo, System.IO.DirectoryInfo
  • 함수 공급자
    • 드라이브 - Function:
    • 개체 형식 - System.Management.Automation.FunctionInfo
  • 레지스트리 공급자
    • 드라이브 - HKLM:, HKCU:
    • 개체 형식 - Microsoft.Win32.RegistryKey
  • 변수 공급자
    • 드라이브 - Variable:
    • 개체 형식 - System.Management.Automation.PSVariable
  • WSMan 공급자
    • 드라이브 - WSMan:
    • 개체 형식 - Microsoft.WSMan.Management.WSManConfigContainerElement

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

Get-PSProvider

참고

인증서, 레지스트리WSMan 공급자는 Windows 플랫폼에서만 사용할 수 있습니다.

공급자 설치 및 제거

공급자는 일반적으로 PowerShell 모듈을 통해 설치됩니다. 모듈을 가져오면 공급자가 세션에 로드됩니다. 기본 제공 공급자는 제거할 수 없습니다. 다른 모듈에서 로드한 공급자를 제거할 수 있습니다.

cmdlet을 사용하여 현재 세션에서 공급자를 언로드할 Remove-Module 수 있습니다. 이 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 공급자 드라이브에 대한 정보를 가져올 수 있습니다. 예를 들어 함수의 모든 속성을 얻으려면 드라이브, 형식:

Get-PSDrive Function | Format-List *

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

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

Get-Item alias:

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

Get-ChildItem HKLM:\SOFTWARE\

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

Set-Location cert:

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

Get-ChildItem

계층적 데이터 이동

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

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

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

Set-Location HKLM:\SOFTWARE\

정규화된 이름의 요소에 공백이 포함된 경우 이름을 큰따옴표(")로 묶어야 합니다. 다음 예제에서는 공백을 포함하는 정규화된 경로를 보여줍니다.

"C:\Program Files\Internet Explorer\iexplore.exe"

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

Get-ChildItem .\PowerShell

또한 이중 점(..)은 현재 위치 바로 위에 있는 디렉터리 또는 컨테이너를 나타냅니다. 이중 점(..)을 사용하여 공급자 계층을 탐색할 수 있습니다.

PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\> cd ..\..\LanmanWorkstation\Parameters
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters>

공급자 홈

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

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

FileSystem 공급자는 Home에 대한 기본값이 있는 유일한 공급자입니다. 와 동일한 값 $Home입니다. 자세한 내용은 about_Automatic_Variables를 참조하세요.

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

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

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

Cert:\> Set-Location ~
Set-Location : Home location for this provider isn't 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:CodeSigningCert 매개 변수를 및 Get-ChildItem cmdlet에 Get-Item 추가합니다. 이 매개 변수는 사용 Get-Item 하거나 Get-ChildItem 드라이브에 있는 Cert: 경우에만 사용할 수 있습니다.

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

Get-Help <provider-name>

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

Get-Help certificate

공급자에 대한 학습

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

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

Get-Help <ProviderName>

예를 들어:

Get-Help registry

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

Get-Help * -Category Provider

추가 정보