Búsqueda de sitios web

Diseño de su proveedor de Windows PowerShell


Debe implementar un proveedor de Windows PowerShell si su producto o configuración expone un conjunto de datos almacenados, como una base de datos por la que el usuario querrá navegar o explorar. Además, si su producto proporciona un contenedor, incluso si no es un contenedor multinivel, tiene sentido implementar un proveedor de Windows PowerShell. Por ejemplo, es posible que desee implementar un proveedor de contenedor de Windows PowerShell si el verbo del cmdlet Copiar, Mover, Cambiar nombre, Nuevo o Quitar tiene sentido como una operación en su producto o datos de configuración.

Las rutas de Windows PowerShell identifican a su proveedor

El tiempo de ejecución de Windows PowerShell utiliza rutas de Windows PowerShell para acceder al proveedor de Windows PowerShell adecuado. Cuando un cmdlet especifica una de estas rutas, el tiempo de ejecución sabe qué proveedor usar para acceder al almacén de datos asociado. Estas rutas incluyen rutas calificadas para unidades, rutas calificadas para proveedores, rutas directas para proveedores y rutas internas para proveedores. Cada proveedor de Windows PowerShell debe admitir una o más de estas rutas.

Para obtener más información sobre las rutas de Windows PowerShell, consulte Cómo funciona Windows PowerShell.

Definición de una ruta calificada para Drive

Para permitir que el usuario acceda a los datos ubicados en una unidad física, su proveedor de Windows PowerShell debe admitir una ruta calificada para la unidad. Esta ruta comienza con el nombre de la unidad seguido de dos puntos (:), por ejemplo, miunidad:\abc\bar.

Definición de una ruta calificada por el proveedor

Para permitir que el tiempo de ejecución de Windows PowerShell inicialice y desinicialice el proveedor, su proveedor de Windows PowerShell debe admitir una ruta calificada por el proveedor. Por ejemplo, FileSystem::\\uncshare\abc\bar es la ruta calificada por el proveedor del sistema de archivos proporcionado por Windows PowerShell.

Definición de una ruta directa al 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.

Definición de una ruta interna 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.

Cambiar datos almacenados

Al invalidar métodos que modifican el almacén de datos subyacente, llame siempre al método System.Management.Automation.Provider.Cmdletprovider.Writeitemobject* con la versión más actualizada del elemento modificado por ese método. La infraestructura del proveedor determina si el objeto del elemento debe pasarse a la canalización, como cuando el usuario especifica el parámetro -PassThru. Si recuperar el elemento más actualizado es una operación costosa (en términos de rendimiento), puede probar la propiedad Context.PassThru para determinar si realmente necesita escribir el elemento resultante.

Elija una clase base para su proveedor

Windows PowerShell proporciona una serie de clases base que puede usar para implementar su propio proveedor de Windows PowerShell. Al diseñar un proveedor, elija la clase base, descrita en esta sección, que mejor se adapte a sus necesidades.

Cada clase base del proveedor de Windows PowerShell pone a disposición un conjunto de cmdlets. Esta sección describe los cmdlets, pero no describe sus parámetros.

Al utilizar el estado de la sesión, el tiempo de ejecución de Windows PowerShell pone varios cmdlets de ubicación a disposición de ciertos proveedores de Windows PowerShell, como Get-Location, Set-Location, Pop- cmdlets Location y Push-Location. Puede utilizar el cmdlet Get-Help para obtener información sobre estos cmdlets de ubicación.

Clase base de cmdletProvider

La clase System.Management.Automation.Provider.Cmdletprovider define un proveedor básico de Windows PowerShell. Esta clase admite la declaración de proveedor y proporciona una serie de propiedades y métodos que están disponibles para todos los proveedores de Windows PowerShell. El cmdlet Get-PSProvider invoca la clase para enumerar todos los proveedores disponibles para una sesión. La implementación de este cmdlet la proporciona el estado de la sesión.

Nota

Los proveedores de Windows PowerShell están disponibles para todos los ámbitos de lenguaje de Windows PowerShell.

Clase base DriveCmdletProvider

La clase System.Management.Automation.Provider.Drivecmdletprovider define un proveedor de unidades de Windows PowerShell que admite operaciones para agregar nuevas unidades, eliminar unidades existentes e inicializar unidades predeterminadas. Por ejemplo, el proveedor de sistema de archivos proporcionado por Windows PowerShell inicializa las unidades de todos los volúmenes que están montados, como discos duros y unidades de dispositivos de CD/DVD.

Esta clase deriva de la clase base System.Management.Automation.Provider.Cmdletprovider. La siguiente tabla enumera los cmdlets expuestos por esta clase. Además de los enumerados, el cmdlet Get-PSDrive (expuesto por el estado de la sesión) es un cmdlet relacionado que se utiliza para recuperar unidades disponibles.

New-PSDrive

Crea una nueva unidad para la sesión y transmite información de la unidad.

Remove-PSDrive

Elimina una unidad de la sesión.

Clase base ItemCmdletProvider

La clase System.Management.Automation.Provider.Itemcmdletprovider define un proveedor de elementos de Windows PowerShell que realiza operaciones en los elementos individuales del almacén de datos y no asume ninguna capacidad de contenedor o navegación. Esta clase deriva de la clase base System.Management.Automation.Provider.Drivecmdletprovider. La siguiente tabla enumera los cmdlets expuestos por esta clase.

Clear-Item

Borra el contenido actual de los elementos en la ubicación especificada y lo reemplaza con el valor "claro" especificado por el proveedor. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Get-Item

Recupera elementos de la ubicación especificada y transmite los objetos resultantes.

Invoke-Item

Invoca la acción predeterminada para el elemento en la ruta especificada.

Set-Item

Establece un elemento en la ubicación especificada con el valor indicado. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Resolve-Path

Resuelve los comodines para una ruta de Windows PowerShell y transmite información de ruta.

Test-Path

Prueba la ruta especificada y devuelve true si existe y false en caso contrario. Este cmdlet se implementa para admitir el parámetro IsContainer para el método System.Management.Automation.Provider.Cmdletprovider.Writeitemobject*.

Clase base ContainerCmdletProvider

La clase System.Management.Automation.Provider.Containercmdletprovider define un proveedor de contenedor de Windows PowerShell que expone un contenedor, para elementos del almacén de datos, al usuario. Tenga en cuenta que un proveedor de contenedores de Windows PowerShell solo se puede utilizar cuando hay un contenedor (no contenedores anidados) con elementos en él. Si hay contenedores anidados, debe implementar un proveedor de navegación de Windows PowerShell.

Esta clase deriva de la clase base System.Management.Automation.Provider.Itemcmdletprovider. La siguiente tabla define los cmdlets implementados por esta clase.

Copy-Item

Copia elementos de una ubicación a otra. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Get-Childitem

Recupera los elementos secundarios en la ubicación especificada y los transmite como objetos.

New-Item

Crea nuevos elementos en la ubicación especificada y transmite el objeto resultante.

Remove-Item

Elimina elementos de la ubicación especificada.

Rename-Item

Cambia el nombre de un elemento en la ubicación especificada. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Clase base NavigationCmdletProvider

La clase System.Management.Automation.Provider.Navigationcmdletprovider define un proveedor de navegación de Windows PowerShell que realiza operaciones para elementos que usan más de un contenedor. Esta clase deriva de la clase base System.Management.Automation.Provider.Containercmdletprovider. La siguiente tabla enumera los cmdlets expuestos por esta clase.

Combine-Path

Combina dos rutas en una única ruta, utilizando un delimitador específico del proveedor entre rutas. Este cmdlet transmite cadenas.

Move-Item

Mueve elementos a la ubicación especificada. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Un cmdlet relacionado es el cmdlet básico Parse-Path proporcionado por Windows PowerShell. Este cmdlet se puede utilizar para analizar una ruta de Windows PowerShell para admitir el parámetro Parent. Transmite la cadena de ruta principal.

Seleccione las interfaces de proveedor que desea admitir

Además de derivar de una de las clases base de Windows PowerShell, su proveedor de Windows PowerShell puede admitir otras funciones derivando de una o más de las siguientes interfaces de proveedor. Esta sección define esas interfaces y los cmdlets admitidos por cada una. No describe los parámetros de los cmdlets compatibles con la interfaz. La información de los parámetros del cmdlet está disponible en línea mediante los cmdlets Get-Command y Get-Help.

IContentCmdletProvider

La interfaz System.Management.Automation.Provider.Icontentcmdletprovider define un proveedor de contenido que realiza operaciones sobre el contenido de un elemento de datos. La siguiente tabla enumera los cmdlets expuestos por esta interfaz.

Add-Content

Agrega las longitudes de valor indicadas al contenido del elemento especificado. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Clear-Content

Establece el contenido del elemento especificado en el valor "claro". Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Get-Content

Recupera el contenido de los elementos especificados y transmite los objetos resultantes.

Set-Content

Reemplaza el contenido existente para los elementos especificados. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

IPropertyCmdletProvider

La interfaz System.Management.Automation.Provider.Ipropertycmdletprovider define una propiedad del proveedor de Windows PowerShell que realiza operaciones en las propiedades de los elementos del almacén de datos. La siguiente tabla enumera los cmdlets expuestos por esta interfaz.

Nota

El parámetro Path en estos cmdlets indica una ruta a un elemento en lugar de identificar una propiedad.

Clear-ItemProperty

Establece las propiedades de los elementos especificados en el valor "claro". Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Get-ItemProperty

Recupera propiedades de los elementos especificados y transmite los objetos resultantes.

Set-ItemProperty

Establece las propiedades de los elementos especificados con los valores indicados. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

IDynamicPropertyCmdletProvider

La interfaz System.Management.Automation.Provider.Idynamicpropertycmdletprovider, derivada de System.Management.Automation.Provider.Ipropertycmdletprovider, define un proveedor que especifica parámetros dinámicos para sus cmdlets admitidos. Este tipo de proveedor maneja operaciones para las cuales se pueden definir propiedades en tiempo de ejecución, por ejemplo, una operación de nueva propiedad. Estas operaciones no son posibles en elementos que tienen propiedades definidas estáticamente. La siguiente tabla enumera los cmdlets expuestos por esta interfaz.

Copy-ItemProperty

Copia una propiedad del elemento especificado a otro elemento. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

Move-ItemProperty

Mueve una propiedad del elemento especificado a otro elemento. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

New-ItemProperty

Crea una propiedad en los elementos especificados y transmite los objetos resultantes.

Remove-ItemProperty

Elimina una propiedad para los elementos especificados.

Rename-ItemProperty

Cambia el nombre de una propiedad de los elementos especificados. Este cmdlet no pasa un objeto de salida a través de la canalización a menos que se especifique su parámetro PassThru.

ISecurityDescriptorCmdletProvider

La interfaz System.Management.Automation.Provider.Isecuritydescriptorcmdletprovider agrega funcionalidad de descriptor de seguridad a un proveedor. Esta interfaz permite al usuario obtener y configurar información del descriptor de seguridad para un elemento en el almacén de datos. La siguiente tabla enumera los cmdlets expuestos por esta interfaz.

Get-Acl

Recupera la información contenida en una lista de control de acceso (ACL), que forma parte de un descriptor de seguridad utilizado para proteger los recursos del sistema operativo, por ejemplo, un archivo o un objeto.

Set-Acl

Establece la información para una ACL. Tiene el formato de una instancia de System.Security.Accesscontrol.Objectsecurity en los elementos designados para la ruta especificada. Este cmdlet puede configurar información sobre archivos, claves y subclaves en el registro, o cualquier otro elemento del proveedor, si el proveedor de Windows PowerShell admite la configuración de información de seguridad.

Ver también

Crear proveedores de Windows PowerShell

Cómo funciona Windows PowerShell

SDK de Windows PowerShell

Artículos relacionados