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
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
位置 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-Item
和 Get-ChildItem
Cmdlet。 只有當您在磁碟驅動器中使用 或 Get-ChildItem
時Cert:
,才可以使用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