Descripción general del proveedor de Windows PowerShell
Un proveedor de Windows PowerShell permite que cualquier almacén de datos quede expuesto como un sistema de archivos como si fuera una unidad montada. Por ejemplo, el proveedor de registro integrado le permite navegar por el registro como lo haría con la unidad c de su computadora. Un proveedor también puede anular los cmdlets Item (por ejemplo, Get-Item, Set-Item, etc.) de modo que los datos de su El almacén de datos se puede tratar como se tratan los archivos y directorios al navegar por un sistema de archivos. Para obtener más información sobre proveedores y unidades, y los proveedores integrados en Windows PowerShell, consulte about_Providers.
Proveedores y unidades
Un proveedor define la lógica que se utiliza para acceder, navegar y editar un almacén de datos, mientras que una unidad especifica un punto de entrada específico a un almacén de datos (o una parte de un almacén de datos) que es del tipo definido por el proveedor. Por ejemplo, el proveedor de Registro le permite acceder a subárboles y claves en un registro, y las unidades HKLM y HKCU especifican los subárboles correspondientes dentro del registro. Las unidades HKLM y HKCU utilizan el proveedor de registro.
Cuando escribe un proveedor, puede especificar unidades predeterminadas: unidades que se crean automáticamente cuando el proveedor está disponible. También define un método para crear nuevas unidades que utilizan ese proveedor.
Tipo de proveedores
Existen varios tipos de proveedores, cada uno de los cuales proporciona un nivel diferente de funcionalidad. Un proveedor se implementa como una clase que deriva de uno de los descendientes de la clase System.Management.Automation.SessionStateCategory CmdletProvider. Para obtener información sobre los diferentes tipos de proveedores, consulte Tipos de proveedores.
Cmdlets de proveedor
Los proveedores pueden implementar métodos que correspondan a cmdlets, creando comportamientos personalizados para esos cmdlets cuando se usan en una unidad para ese proveedor. Según el tipo de proveedor, hay diferentes conjuntos de cmdlets disponibles. Para obtener una lista completa de los cmdlets disponibles para personalización en proveedores, consulte Cmdlets de proveedor.
Rutas de proveedores
Los usuarios navegan por unidades de proveedores como sistemas de archivos. Debido a esto, esperan que la sintaxis de las rutas corresponda con las rutas utilizadas en la navegación del sistema de archivos. Cuando un usuario ejecuta un cmdlet de proveedor, especifica una ruta al elemento al que se accederá. La ruta que se especifica se puede interpretar de varias maneras. Un proveedor debe admitir uno o más de los siguientes tipos de ruta.
Rutas calificadas para conducir
Una ruta calificada para unidad es una combinación del nombre del elemento, el contenedor y los subcontenedores en los que se encuentra el elemento y la unidad de Windows PowerShell a través de la cual se accede al elemento. (Las unidades las define el proveedor que se utiliza para acceder al almacén de datos. Esta ruta comienza con el nombre de la unidad seguido de dos puntos (:). Por ejemplo: get-childitem C:
Rutas calificadas por proveedores
Para permitir que el motor de Windows PowerShell inicialice y desinicialice su proveedor, el proveedor debe admitir una ruta calificada por el proveedor. Por ejemplo, el usuario puede inicializar y desinicializar el proveedor FileSystem porque define la siguiente ruta calificada por el proveedor: FileSystem::\\uncshare\abc\bar.
Rutas directas del proveedor
Para permitir el acceso remoto a su proveedor de Windows PowerShell, debe admitir una ruta directa del proveedor para pasar directamente al proveedor de Windows PowerShell para la ubicación actual. Por ejemplo, el proveedor de registro de Windows PowerShell puede usar \\server\regkeypath como ruta directa del proveedor.
Rutas internas del proveedor
Para permitir que el cmdlet del proveedor acceda a los datos mediante interfaces de programación de aplicaciones (API) que no sean de Windows PowerShell, su proveedor de Windows PowerShell debe admitir una ruta interna del proveedor. Esta ruta se indica después de "::" en la ruta calificada por el proveedor. Por ejemplo, la ruta interna del proveedor para el sistema de archivos de Windows PowerShell es \\uncshare\abc\bar.
Anulación de parámetros de cmdlet
Un proveedor puede anular el comportamiento de algunos cmdlets específicos del proveedor. Para obtener una lista de parámetros que se pueden invalidar y cómo invalidarlos en su clase de proveedor, consulte Parámetros del cmdlet del proveedor.
Parámetros dinámicos
Los proveedores pueden definir parámetros dinámicos que se agregan a un cmdlet de proveedor cuando el usuario especifica un valor determinado para uno de los parámetros estáticos del cmdlet. Un proveedor hace esto implementando uno o más métodos de parámetros dinámicos. Para obtener una lista de parámetros de cmdlet que se pueden usar para agregar parámetros dinámicos y los métodos utilizados para implementarlos, consulte Parámetros dinámicos de cmdlet del proveedor.
Capacidades del proveedor
La enumeración System.Management.Automation.Provider.Providercapabilities define una serie de capacidades que los proveedores pueden admitir. Estos incluyen la capacidad de utilizar comodines, filtrar elementos y respaldar transacciones. Para especificar capacidades para un proveedor, agregue una lista de valores de la enumeración System.Management.Automation.Provider.Providercapabilities, combinada con una operación lógica OR, como System.Management.Automation.Provider.Cmdletproviderattribute Propiedad .Providercapabilities* (el segundo parámetro del atributo) del atributo System.Management.Automation.Provider.Cmdletproviderattribute para su clase de proveedor. Por ejemplo, el siguiente atributo especifica que el proveedor admite las capacidades System.Management.Automation.Provider.Providercapabilities ShouldProcess y System.Management.Automation.Provider.ProviderCapabilities Transacciones.
[CmdletProvider(RegistryProvider.ProviderName, ProviderCapabilities.ShouldProcess | ProviderCapabilities.Transactions)]
Ayuda del cmdlet del proveedor
Al escribir un proveedor, puede implementar su propia Ayuda para los cmdlets del proveedor que admite. Esto incluye un único tema de ayuda para cada cmdlet del proveedor o varias versiones de un tema de ayuda para los casos en los que el cmdlet del proveedor actúa de forma diferente según el uso de parámetros dinámicos. Para admitir la ayuda específica de cmdlet del proveedor, su proveedor debe implementar la interfaz System.Management.Automation.Provider.Icmdletprovidersupportshelp.
El motor de Windows PowerShell llama al método System.Management.Automation.Provider.Icmdletprovidersupportshelp.Gethelpmaml* para mostrar el tema de Ayuda para los cmdlets de su proveedor. El motor proporciona el nombre del cmdlet que el usuario especificó al ejecutar el cmdlet Get-Help y la ruta actual del usuario. La ruta actual es necesaria si su proveedor implementa diferentes versiones del mismo cmdlet de proveedor para diferentes unidades. El método debe devolver una cadena que contenga el XML de la Ayuda del cmdlet.
El contenido del archivo de Ayuda está escrito utilizando PSMAML XML. Este es el mismo esquema XML que se usa para escribir contenido de Ayuda para cmdlets independientes. Agregue el contenido de su ayuda de cmdlet personalizado al archivo de ayuda de su proveedor en el elemento CmdletHelpPaths. En el siguiente ejemplo se muestra el elemento command para un cmdlet de proveedor único y cómo se especifica el nombre del cmdlet de proveedor que su proveedor. apoya
<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>
Ver también
Funcionalidad del proveedor de Windows PowerShell
Cmdlets de proveedor
Escribir un proveedor de Windows PowerShell