共用方式為


about_Providers

簡短描述

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

完整描述

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

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

內建提供者

PowerShell 包含一組內建提供者,可存取不同類型的物件。

  • 別名 提供者
    • 驅動- Alias:
    • 物件類型 - System.Management.Automation.AliasInfo
  • 憑證 提供者
    • 驅動- Cert:
    • 物件類型 - Microsoft.PowerShell.Commands.X509StoreLocationSystem.Security.Cryptography.X509Certificates.X509Certificate2
  • 環境 提供者
    • 驅動- Env:
    • 物件類型 - System.Collections.DictionaryEntry
  • FileSystem 提供者
    • 磁碟驅動器 - C: 和其他視硬體而定
    • 物件類型 - System.IO.FileInfoSystem.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

注意

CertificateRegistryWSMan 提供者只能在 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-ItemGet-ChildItem Cmdlet。 輸入磁碟驅動器名稱,後面接著冒號 (:) 。 例如,若要檢視磁碟驅動器的內容 Alias: ,請輸入:

Get-Item alias:

您可以從另一個磁碟驅動器檢視和管理任何磁碟驅動器中的數據,方法是在路徑中包含磁碟驅動器名稱。 例如,若要從另一個磁碟驅動器檢視 HKLM\Software 磁碟驅動器中的 HKLM: 登錄機碼,請輸入:

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

另請參閱