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

[玩转系统] Windows PowerShell 提供程序概述

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

Windows PowerShell 提供程序概述


Windows PowerShell 提供程序允许像文件系统一样公开任何数据存储,就好像它是已安装的驱动器一样。例如,内置注册表提供程序允许您像导航计算机的 c 驱动器一样导航注册表。提供程序还可以重写 Item cmdlet(例如,Get-ItemSet-Item 等),以便您的数据数据存储可以像浏览文件系统时处理文件和目录一样对待。有关提供程序和驱动器以及 Windows PowerShell 中的内置提供程序的详细信息,请参阅 about_Providers。

提供者和驱动器

提供程序定义用于访问、导航和编辑数据存储的逻辑,而驱动器则指定数据存储(或数据存储的一部分)的特定入口点,该数据存储的类型由提供程序定义。例如,注册表提供程序允许您访问注册表中的配置单元和密钥,而 HKLM 和 HKCU 驱动器指定注册表中相应的配置单元。 HKLM 和 HKCU 驱动器都使用注册表提供程序。

当您编写提供程序时,您可以指定默认驱动器 - 当提供程序可用时自动创建的驱动器。您还可以定义一种方法来创建使用该提供程序的新驱动器。

提供商类型

有多种类型的提供程序,每种提供程序都提供不同级别的功能。提供程序作为派生自 System.Management.Automation.SessionStateCategory CmdletProvider 类的子代之一的类来实现。有关不同类型的提供程序的信息,请参阅提供程序类型。

提供商 cmdlet

提供程序可以实现与 cmdlet 相对应的方法,从而在该提供程序的驱动器中使用这些 cmdlet 时为这些 cmdlet 创建自定义行为。根据提供程序的类型,可以使用不同的 cmdlet 集。有关可用于提供程序中自定义的 cmdlet 的完整列表,请参阅提供程序 cmdlet。

提供商路径

用户像文件系统一样浏览提供者驱动器。因此,他们期望路径的语法与文件系统导航中使用的路径相对应。当用户运行提供程序 cmdlet 时,他们指定要访问的项目的路径。指定的路径可以用多种方式解释。提供程序应支持以下一种或多种路径类型。

符合行驶条件的路径

驱动器限定路径是项目名称、项目所在的容器和子容器以及访问项目所通过的 Windows PowerShell 驱动器的组合。 (驱动器由用于访问数据存储的提供程序定义。此路径以驱动器名称开头,后跟冒号 (:)。例如:get-childitem C:

提供商合格的路径

要允许 Windows PowerShell 引擎初始化和取消初始化您的提供程序,该提供程序必须支持提供程序限定的路径。例如,用户可以初始化和取消初始化 FileSystem 提供程序,因为它定义了以下提供程序限定路径:FileSystem::\uncshare\abc\bar

提供商直接路径

要允许远程访问 Windows PowerShell 提供程序,它应该支持提供程序直接路径,以直接传递到当前位置的 Windows PowerShell 提供程序。例如,注册表 Windows PowerShell 提供程序可以使用 \server\regkeypath 作为提供程序直接路径。

提供商内部路径

要允许提供程序 cmdlet 使用非 Windows PowerShell 应用程序编程接口 (API) 访问数据,您的 Windows PowerShell 提供程序应支持提供程序内部路径。该路径在提供者限定路径中的“::”之后指示。例如,文件系统 Windows PowerShell 提供程序的提供程序内部路径为 \uncshare\abc\bar

覆盖 cmdlet 参数

某些特定于提供程序的 cmdlet 的行为可以被提供程序覆盖。有关可以覆盖的参数列表以及如何在提供程序类中覆盖它们,请参阅提供程序 cmdlet 参数

动态参数

提供程序可以定义当用户为 cmdlet 的静态参数之一指定特定值时添加到提供程序 cmdlet 的动态参数。提供者通过实现一个或多个动态参数方法来实现这一点。有关可用于添加动态参数的 cmdlet 参数列表以及用于实现它们的方法,请参阅提供程序 cmdlet 动态参数。

提供商能力

System.Management.Automation.Provider.Providercapability 枚举定义了提供程序可以支持的许多功能。其中包括使用通配符、过滤项目和支持事务的能力。要指定提供程序的功能,请添加 System.Management.Automation.Provider.Providercapability 枚举的值列表,并结合逻辑 OR 操作,作为 System.Management.Automation.Provider.Cmdletproviderattribute提供程序类的 System.Management.Automation.Provider.Cmdletproviderattribute 属性的 .Providercapability* 属性(属性的第二个参数)。例如,以下属性指定提供程序支持 System.Management.Automation.Provider.Providercapability ShouldProcess 和 System.Management.Automation.Provider.ProviderCapability Transactions 功能。

[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]

提供商 cmdlet 帮助

编写提供程序时,您可以为您支持的提供程序 cmdlet 实现自己的帮助。这包括每个提供程序 cmdlet 的单个帮助主题,或者针对提供程序 cmdlet 根据动态参数的使用而采取不同行为的情况的帮助主题的多个版本。要支持提供程序 cmdlet 特定的帮助,您的提供程序必须实现 System.Management.Automation.Provider.Icmdletprovidersupportshelp 接口。

Windows PowerShell 引擎调用 System.Management.Automation.Provider.Icmdletprovidersupportshelp.Gethelpmaml* 方法来显示提供程序 cmdlet 的帮助主题。该引擎提供用户在运行 Get-Help cmdlet 时指定的 cmdlet 的名称以及用户的当前路径。如果您的提供程序为不同驱动器实现同一提供程序 cmdlet 的不同版本,则需要当前路径。该方法必须返回一个包含 cmdlet 帮助的 XML 的字符串。

帮助文件的内容是使用 PSMAML XML 编写的。这与用于编写独立 cmdlet 的帮助内容的 XML 架构相同。将自定义 cmdlet 帮助的内容添加到 CmdletHelpPaths 元素下提供商的帮助文件中。以下示例显示单个提供程序 cmdlet 的 command 元素,并显示如何指定您的提供程序的提供程序 cmdlet 的名称。支持

<CmdletHelpPaths>
  <command:command>
    <command:details>
      <command:name>ProviderCmdletName</command:name>
      <command:verb>Verb</command:verb>
      <command:noun>Noun</command:noun>
    <command:details>
  </command:command>
<CmdletHelpPath>

参见

Windows PowerShell 提供程序功能

提供商 Cmdlet

编写 Windows PowerShell 提供程序

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

取消回复欢迎 发表评论:

关灯