about_Providers

应用到: Windows PowerShell 2.0, Windows PowerShell 3.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

* FileSystem 驱动器在每个系统上有所不同。

你还可以创建你自己的 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 创建一个新项目。在 FileSystem 提供程序支持的 C:驱动器中,你可以使用 New-Item 创建新文件或文件夹。在受注册表提供程序支持的驱动器中,你可以使用 New-Item 创建新注册表项。在 Alias:驱动器中,可以使用 New-Item 创建新别名。

有关以下任何 cmdlet 的详细信息,请键入:

        get-help <cmdlet-name> -detailed

CHILDITEM CMDLET

        Get-ChildItem

CONTENT CMDLET

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

ITEM CMDLET

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

ITEMPROPERTY CMDLET

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

LOCATION CMDLET

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

PATH CMDLET

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

PSDRIVE CMDLET

        Get-PSDrive
        New-PSDrive
        Remove-PSDrive

PSPROVIDER CMDLET

        Get-PSProvider

查看提供程序数据

提供程序的主要优点是它以熟悉且一致的方式公开其数据。数据呈现的模型是文件系统驱动器。

若要使用提供程序公开的数据,你可以查看、浏览和更改它,如同它是硬盘驱动器上的数据。因此,有关提供程序的最重要的信息是它所支持的驱动器的名称。

该驱动器在 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