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
注意
Certificate、Registry 和 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:
登錄機碼,請輸入:
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