当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 关于提供商

作者:精品下载站 日期:2024-12-14 02:20:11 浏览:14 分类:玩电脑

关于提供商


简短描述

描述 PowerShell 提供程序如何提供对通过命令行无法轻松访问的数据和组件的访问。数据以类似于文件系统驱动器的一致格式呈现。

详细描述

PowerShell 提供程序是 .NET 程序,可提供对专用数据存储的访问,以便于查看和管理。数据出现在驱动器中,您可以像在硬盘驱动器上一样访问数据。您可以使用提供程序支持的任何内置 cmdlet 来管理提供程序驱动器中的数据。而且,您可以使用专为数据设计的自定义 cmdlet。

提供程序还可以向内置 cmdlet 添加动态参数。仅当您将 cmdlet 与提供程序数据结合使用时,这些参数才可用。

内置提供商

PowerShell 包含一组内置提供程序,可提供对不同类型对象的访问。

  • 别名提供商

    • 驱动器 - 别名:
  • 对象类型 - System.Management.Automation.AliasInfo
  • 证书提供商

    • 驱动器 - 证书:
  • 对象类型 - Microsoft.PowerShell.Commands.X509StoreLocationSystem.Security.Cryptography.X509Certificates.X509Certificate2
  • 环境提供商

    • 驱动器 - 环境:
  • 对象类型 - System.Collections.DictionaryEntry
  • 文件系统提供商

    • 驱动器 - C: 和其他取决于硬件
  • 对象类型 - System.IO.FileInfoSystem.IO.DirectoryInfo
  • 函数提供者

    • 驱动器 - 功能:
  • 对象类型 - System.Management.Automation.FunctionInfo
  • 注册表提供商

    • 驱动器 - HKLM:HKCU:
  • 对象类型 - Microsoft.Win32.RegistryKey
  • 变量提供者

    • 驱动器 - 变量:
  • 对象类型 - System.Management.Automation.PSVariable
  • WSMan 提供商

    • 驱动器 - WSMan:
  • 对象类型 - Microsoft.WSMan.Management.WSManConfigContainerElement
  • 您还可以创建自己的 PowerShell 提供程序,并且可以安装其他人开发的提供程序。要列出您的会话中可用的提供程序,请键入:

    Get-PSProvider
    

    笔记

    证书注册表WSMan提供程序仅在Windows平台上可用。

    安装和删除提供程序

    提供程序通常通过 PowerShell 模块安装。导入模块会将提供程序加载到您的会话中。您无法卸载内置提供程序。您可以卸载其他模块加载的提供程序。

    您可以使用 Remove-Module cmdlet 从当前会话中卸载提供程序。此 cmdlet 不会卸载提供程序,但会使提供程序在会话中不可用。

    您还可以使用 Remove-PSDrive cmdlet 从当前会话中删除任何驱动器。驱动器上的数据不受影响,但该驱动器在该会话中不再可用。

    查看提供商

    要查看计算机上的 PowerShell 提供程序,请键入:

    Get-PSProvider
    

    输出列出了内置提供程序和您添加到会话中的提供程序。

    提供者 cmdlet

    以下 cmdlet 旨在处理任何提供程序公开的数据。您可以以相同的方式使用相同的 cmdlet 来管理提供程序公开的不同类型的数据。在您学会管理一个提供商的数据后,您可以对来自任何提供商的数据使用相同的过程。

    例如,New-Item cmdlet 创建一个新项目。在 FileSystem 提供程序支持的 C: 驱动器中,您可以使用 New-Item 创建新文件或文件夹。在 Registry 提供程序支持的驱动器中,您可以使用 New-Item 创建新的注册表项。在 Alias: 驱动器中,您可以使用 New-Item 创建新别名。

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

    Get-Help <cmdlet-name> -Detailed
    

    ChildItem cmdlet

    • Get-ChildItem

    内容 Cdlet

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

    项目 Cmdlet

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

    项目属性 cmdlet

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

    位置 cmdlet

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

    路径 cmdlet

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

    PSDrive cmdlet

    • 获取 PSDrive
    • 新PSDrive
    • 删除 PSDrive

    PSProvider Cmdlet

    • 获取 PSProvider

    查看提供商数据

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

    该提供程序允许您查看、导航和更改数据存储中的项目,就像它们是文件系统中的数据一样。数据存储可通过其支持的驱动器名称进行访问。

    该驱动器列在 Get-PSProvider cmdlet 的默认显示中,但您可以使用 Get-PSDrive cmdlet 获取有关提供程序驱动器的信息。例如,要获取 Function:drive 的所有属性,请键入:

    Get-PSDrive Function | Format-List *
    

    您可以像在文件系统驱动器上一样查看和移动提供程序驱动器中的数据。

    要查看提供程序驱动器的内容,请使用 Get-ItemGet-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\
    

    如果完全限定名称中的任何元素包含空格,则必须将该名称用双引号 (") 括起来。以下示例显示包含空格的完全限定路径。

    "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>
    

    供应商主页

    提供商还有一个主页位置。此位置由提供商支持的所有 PSDrive 共享。可以通过查看提供者的 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。仅当您在 Cert: 驱动器中使用 Get-ItemGet-ChildItem 时,才可以使用此参数。

    有关提供程序支持的动态参数的列表,请参阅提供程序的帮助文件。类型:

    Get-Help <provider-name>
    

    例如:

    Get-Help certificate
    

    了解提供商

    尽管所有提供程序数据都出现在驱动器中,并且您使用相同的方法在它们之间移动,但相似之处仅此而已。提供程序公开的数据存储可以多种多样,如 Active Directory 位置和 Microsoft Exchange Server 邮箱。

    有关各个 PowerShell 提供程序的信息,请键入:

    Get-Help <ProviderName>
    

    例如:

    Get-Help registry
    

    有关提供程序的帮助主题列表,请键入:

    Get-Help * -Category Provider
    

    参见

    • 关于地点
    • about_Path_Syntax

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯