about_Providers

適用於: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

主題

about_Providers

簡短描述

描述 Windows PowerShell 提供者如何提供在命令列中無法輕易存取之資料與元件的存取權限。資料以一致的格式呈現,類似於檔案系統磁碟機。

詳細描述

Windows PowerShell 提供者是 Microsoft .NET Framework 架構的程式,可讓您在 Windows PowerShell 中使用特殊之資料存放區中的資料,以便輕鬆地加以檢視和管理。

提供者所公開的資料會出現在磁碟機中,而您可在路徑中存取資料,就如同在硬碟上一樣。您可以使用任何提供者所支援的內建 Cmdlet 來管理提供者磁碟機中的資料。而且您還可以使用特別針對資料所設計的自訂 Cmdlet。

提供者也可以將動態參數加入內建 Cmdlet 中。這些是只有當您搭配提供者資料使用 Cmdlet 時,才能使用的參數。

內建提供者

Windows PowerShell 包含一組內建提供者,您可加以使用來存取不同類型的資料存放區。

    Provider      Drive         Data store
    --------      -----         ----------
    Alias         Alias:        Windows PowerShell aliases
 
    Certificate   Cert:         x509 certificates for digital signatures

    Environment   Env:          Windows environment variables

    FileSystem    *             File system drives, directories, and files

    Function      Function:     Windows PowerShell functions

    Registry      HKLM:, HKCU:  Windows registry

    Variable      Variable:     Windows PowerShell variables

    WSMan         WSMan:        WS-Management configuration information

* 每個系統上的檔案系統磁碟機都有所不同。

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

        get-psprovider

安裝和移除提供者

Windows PowerShell 提供者會在 Windows PowerShell 嵌入式管理單元中傳送給您,也就是編譯成為.dll 檔案的 .NET Framework 架構程式。嵌入式管理單元可包含提供者和 Cmdlet。

使用提供者功能之前,您必須安裝嵌入式管理單元並將其加入您的 Windows PowerShell 工作階段中。如需詳細資訊,請參閱 about_PSSnapins。

雖然您可以從目前的工作階段移除提供者的 Windows PowerShell 嵌入式管理單元,但您不能解除安裝提供者。如果您這樣做,將會移除嵌入式管理單元的所有內容,包括其 Cmdlet。

您也可以使用 Remove-PSDrive Cmdlet 來移除目前工作階段中的任何磁碟機。磁碟機上的這項資料不會受到影響,但在工作階段中已無法再使用該磁碟機。

檢視提供者

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

        get-psprovider

輸出會列出內建提供者,以及您加入到工作階段的提供者。

提供者 CMDLET

下列 Cmdlet 是設計來與任何提供者所公開的資料搭配使用。您可以透過相同的方式使用相同的 Cmdlet 來管理提供者所公開之不同類型的資料。在您學習如何管理一個提供者的資料之後,您便可以使用相同的程序處理來自任何提供者的資料。

例如,New-Item Cmdlet 會建立新項目。在檔案系統提供者支援的 C: 磁碟機中,您可以使用 New-Item 來建立新的檔案或資料夾。在登錄提供者支援的磁碟機中,您可以使用 New-Item 來建立新的登錄機碼。在 Alias: 磁碟機中,您可以使用 New-Item 來建立新的別名。

如需任何下列 Cmdlet 的詳細資訊,請輸入:

        get-help <cmdlet-name> -detailed

CHILDITEM CMDLETS

        Get-ChildItem

CONTENT CMDLETS

        Add-Content
        Clear-Content
        Get-Content
        Set-Content

ITEM CMDLETS

        Clear-Item
        Copy-Item
        Get-Item
        Invoke-Item
        Move-Item
        New-Item
        Remove-Item
        Rename-Item
        Set-Item

ITEMPROPERTY CMDLETS

        Clear-ItemProperty
        Copy-ItemProperty
        Get-ItemProperty
        Move-ItemProperty
        New-ItemProperty
        Remove-ItemProperty
        Rename-ItemProperty
        Set-ItemProperty

LOCATION CMDLETS

        Get-Location
        Pop-Location
        Push-Location
        Set-Location

PATH CMDLETS

        Join-Path
        Convert-Path
        Split-Path
        Resolve-Path
        Test-Path

PSDRIVE CMDLETS

        Get-PSDrive
        New-PSDrive
        Remove-PSDrive

PSPROVIDER CMDLETS

        Get-PSProvider

VIEWING PROVIDER DATA

提供者的主要優點是其以熟悉且一致的方式公開其資料。資料呈現的模型是檔案系統磁碟機。

若要使用提供者公開的資料,您可以將其視為硬碟上的資料一般,加以檢視、瀏覽及變更。因此,有關提供者最重要的資訊就是其所支援的磁碟機名稱。

磁碟機會列在 Get-PSProvider Cmdlet 的預設顯示中,但您可以使用 Get-PSDrive Cmdlet 來取得提供者磁碟機的相關資訊。例如,若要取得 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

尋找動態參數

動態參數是由提供者加入到 Cmdlet 的 Cmdlet 參數。只有在 Cmdlet 與將其加入的提供者搭配使用時,才能使用這些參數。

例如,Cert: 磁碟機會將 CodeSigningCert 參數加入 Get-Item 和 Get-ChildItem Cmdlet 中。只有當您在 Cert: 磁碟機中使用 Get-Item 或 Get-ChildItem 時,才可以使用這個參數。

如需提供者支援的動態參數清單,請參閱提供者的說明檔。類型:

        get-help <provider-name>

例如:

        get-help certificate

深入了解提供者

雖然所有的提供者資料都會出現在磁碟機,且您使用相同的方法來加以瀏覽,但是兩者相似性僅只於此。提供者公開的資料存放區可以依據 Active Directory 位置和 Microsoft Exchange Server 信箱而有所不同。

如需有關個別 Windows PowerShell 提供者的相關資訊,請輸入:

        get-help <ProviderName>

例如:

        get-help registry

如需有關提供者的說明主題清單,請輸入:

        get-help * -category provider

另請參閱

about_Locations

about_Path_Syntax