共用方式為


關於提供者

簡短描述

描述 PowerShell 提供者如何提供無法輕易在命令行存取的數據和元件存取權。 數據會以類似檔系統磁碟驅動器的一致格式呈現。

完整描述

PowerShell 提供者是以 Microsoft .NET Framework 為基礎的程式,可在 PowerShell 中使用特殊數據存放區中的數據,以便檢視和管理它。

提供者公開的數據會出現在磁碟驅動器中,而且您可以在硬碟上存取路徑中的數據。 您可以使用提供者支援的任何內建 Cmdlet 來管理提供者磁碟驅動器中的數據。 而且,您可以使用專為數據設計的自定義 Cmdlet。

提供者也可以將動態參數新增至內建 Cmdlet。 這些是只有在您將 Cmdlet 與提供者數據搭配使用時,才能使用的參數。

內建提供者

PowerShell 包含一組內建提供者,可用來存取不同類型的數據存放區。

提供者 磁碟機 資料存放區
Alias Alias: PowerShell 別名
憑證 Cert: 數字簽名的 x509 憑證
環境 Env: Windows 環境變數
FileSystem (*) 檔案系統磁碟驅動器、目錄和檔案
函式 函式: PowerShell 函式
登錄 HKLM:、HKCU: Windows 登錄
變數 Variable: PowerShell 變數
WSMan WSMan: WS-Management 組態資訊

(*) 檔案系統磁碟驅動器會在每個系統上有所不同。

您也可以建立自己的 PowerShell 提供者,也可以安裝其他人開發的提供者。 若要列出工作階段中可用的提供者,請輸入:

Get-PSProvider

安裝和移除提供者

PowerShell 提供者會在 PowerShell 嵌入式管理單元中傳遞給您,這些嵌入式管理單元是編譯成 .dll 檔案的 .NET Framework 型程式。 嵌入式管理單元可以包含提供者和 Cmdlet。

使用提供者功能之前,您必須安裝嵌入式管理單元,然後將它新增至 PowerShell 會話。 如需詳細資訊,請參閱 about_PSSnapins

您無法卸載提供者,雖然您可以從目前的會話移除提供者的PowerShell嵌入式管理單元。 如果您這麼做,您將移除嵌入式管理單元的所有內容,包括其 Cmdlet。

若要從目前的會話中移除提供者,請使用 Remove-PSSnapin Cmdlet。 此 Cmdlet 不會卸載提供者,但它會使提供者無法在會話中使用。

您也可以使用 Remove-PSDrive Cmdlet 從目前的工作階段中移除任何磁碟驅動器。 磁碟驅動器上的此數據不會受到影響,但該會話中不再提供磁碟驅動器。

檢視提供者

若要檢視電腦上的PowerShell提供者,請輸入:

Get-PSProvider

輸出會列出您新增至會話的內建提供者和提供者。

提供者 Cmdlet

下列 Cmdlet 的設計目的是要處理任何提供者所公開的數據。 您可以使用相同的 Cmdlet 來管理提供者公開的不同數據類型。 在瞭解如何管理一個提供者的數據之後,您可以搭配任何提供者的數據使用相同的程式。

例如, New-Item Cmdlet 會建立新的專案。 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: 磁碟驅動器的所有屬性,請輸入:

Get-PSDrive Function | Format-List *

您可以檢視及行動提供者磁碟驅動器中的數據,就像在檔案系統磁碟驅動器上一樣。

若要檢視提供者磁碟驅動器的內容,請使用 Get-Item 或 Get-ChildItem Cmdlet。 輸入磁碟驅動器名稱,後面接著冒號 (:) 。 例如,若要檢視 Alias: 磁碟驅動器的內容,請輸入:

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 預設值的提供者。 其值$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:CodeSigningCert 參數新增至 Get-ItemGet-ChildItem Cmdlet。 只有在您在磁碟驅動器中使用 或 Get-ChildItemCert: 時,才能使用Get-Item此參數。

如需提供者支持的動態參數清單,請參閱提供者的說明檔。 輸入:

Get-Help <provider-name>

例如:

Get-Help certificate

瞭解提供者

雖然所有提供者數據都會出現在磁碟驅動器中,而且您使用相同的方法來移動它們,但相似度會停止在該處。 提供者公開的數據存放區可能會因 Active Directory 位置和 Microsoft Exchange Server 信箱而有所不同。

如需個別 PowerShell 提供者的相關信息,請輸入:

Get-Help <ProviderName>

例如:

Get-Help registry

如需提供者的相關幫助主題清單,請輸入:

Get-Help * -Category Provider

另請參閱

about_Locations

about_Path_Syntax