共用方式為


about_Providers

簡短描述

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

完整描述

PowerShell 提供者是 .NET 程式,可提供特殊數據存放區的存取權,以便更輕鬆地檢視和管理。 數據會出現在磁碟驅動器中,而且您可以在硬碟上存取路徑中的數據。 您可以使用提供者支援的任何內建 Cmdlet 來管理提供者磁碟驅動器中的數據。 而且,您可以使用專為數據設計的自定義 Cmdlet。

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

內建提供者

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

提供者 磁碟驅動器 () OutputType
Alias 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
函式 函式: 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 不會卸載提供者,但它會使提供者無法在會話中使用。

您也可以使用 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\Software 登錄機碼:磁碟驅動器中的 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\

如果完整名稱中的任何專案包含空格,您必須以雙引弧括住名稱, " () 。 下列範例顯示包含空格的完整路徑。

"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

您可以使用提供者的 屬性,為目前會話設定 Home 目錄。

(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-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

另請參閱