Compartir a través de


Creación de un proveedor de propiedades de Windows PowerShell

En este tema se describe cómo crear un proveedor que permita al usuario manipular las propiedades de los elementos de un almacén de datos. Como consecuencia, este tipo de proveedor se conoce como proveedor de propiedades de Windows PowerShell. Por ejemplo, el proveedor del Registro proporcionado por Windows PowerShell controla los valores de clave del Registro como propiedades del elemento de clave del Registro. Este tipo de proveedor debe agregar la interfaz System.Management.Automation.Provider.IPropertyCmdletProvider a la implementación de la clase .NET.

Nota:

Windows PowerShell proporciona un archivo de plantilla que puede usar para desarrollar un proveedor de Windows PowerShell. El archivo TemplateProvider.cs está disponible en el Kit de desarrollo de software de Microsoft Windows para Windows Vista y componentes en tiempo de ejecución de .NET Framework 3.0. Para obtener instrucciones de descarga, consulte Cómo instalar Windows PowerShell y Descargar el SDK de Windows PowerShell. La plantilla descargada está disponible en el directorio>ejemplos de PowerShell de<. Debe realizar una copia de este archivo y usar la copia para crear un nuevo proveedor de Windows PowerShell, quitando cualquier funcionalidad que no necesite. Para obtener más información sobre otras implementaciones del proveedor de Windows PowerShell, consulte Diseño del proveedor de Windows PowerShell.

Precaución

Los métodos del proveedor de propiedades deben escribir cualquier objeto mediante el método System.Management.Automation.Provider.CmdletProvider.Writepropertyobject*.

Definición del proveedor de Windows PowerShell

Un proveedor de propiedades debe crear una clase .NET que admita la interfaz System.Management.Automation.Provider.IPropertyCmdletProvider. Esta es la declaración de clase predeterminada del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Definición de la funcionalidad base

La interfaz System.Management.Automation.Provider.IPropertyCmdletProvider se puede adjuntar a cualquiera de las clases base del proveedor, a excepción de la clase System.Management.Automation.Provider.DriveCmdletProvider. Agregue la funcionalidad base que requiere la clase base que está usando. Para obtener más información sobre las clases base, vea Diseño del proveedor de Windows PowerShell.

Recuperación de propiedades

Para recuperar propiedades, el proveedor debe implementar el método System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* para admitir llamadas desde el cmdlet Get-ItemProperty. Este método recupera las propiedades del elemento ubicado en la ruta de acceso interna del proveedor especificada (completa).

El parámetro providerSpecificPickList indica qué propiedades se van a recuperar. Si este parámetro es null o está vacío, el método debe recuperar todas las propiedades. Además, System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* escribe una instancia de un objeto System.Management.Automation.PSObject que representa un contenedor de propiedades de las propiedades recuperadas. El método no debe devolver nada.

Se recomienda que la implementación de System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* admita la expansión comodín de nombres de propiedad para cada elemento de la lista de selección. Para ello, use la clase System.Management.Automation.WildcardPattern para realizar la coincidencia de patrones comodín.

Esta es la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* desde el archivo de TemplateProvider.cs proporcionado por Windows PowerShell.

Cosas que recordar sobre la implementación de GetProperty

Las condiciones siguientes pueden aplicarse a la implementación de System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty*:

Asociación de parámetros dinámicos al cmdlet de Get-ItemProperty

El cmdlet Get-ItemProperty puede requerir parámetros adicionales que se especifican dinámicamente en tiempo de ejecución. Para proporcionar estos parámetros dinámicos, el proveedor de propiedades de Windows PowerShell debe implementar el método System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters*. El parámetro path indica una ruta de acceso interna de proveedor completa, mientras que el parámetro providerSpecificPickList especifica las propiedades específicas del proveedor especificadas en la línea de comandos. Este parámetro puede ser null o estar vacío si las propiedades se canalizan al cmdlet . En este caso, este método devuelve un objeto que tiene propiedades y campos con atributos de análisis similares a una clase de cmdlet o un objeto System.Management.Automation.RuntimeDefinedParameterDictionary. El entorno de ejecución de Windows PowerShell usa el objeto devuelto para agregar los parámetros al cmdlet .

Esta es la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Establecer propiedades

Para establecer propiedades, el proveedor de propiedades de Windows PowerShell debe implementar el método System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* para admitir llamadas desde el cmdlet Set-ItemProperty. Este método establece una o varias propiedades del elemento en la ruta de acceso especificada y sobrescribe las propiedades proporcionadas según sea necesario. System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* también escribe una instancia de un objeto System.Management.Automation.PS Object que representa un contenedor de propiedades de las propiedades actualizadas.

Esta es la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* desde el archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Cosas que recordar sobre la implementación de Set-ItemProperty

Las condiciones siguientes pueden aplicarse a una implementación de System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty*:

Asociación de parámetros dinámicos para el cmdlet Set-ItemProperty

El cmdlet Set-ItemProperty puede requerir parámetros adicionales que se especifican dinámicamente en tiempo de ejecución. Para proporcionar estos parámetros dinámicos, el proveedor de propiedades de Windows PowerShell debe implementar el método System.Management.Automation.Provider.IPropertyCmdletProvider.SetPropertyDynamicParameters*. Este método devuelve un objeto que tiene propiedades y campos con atributos de análisis similares a una clase de cmdlet o un objeto System.Management.Automation.RuntimeDefinedParameterDictionary. El valor null se puede devolver si no se va a agregar ningún parámetro dinámico.

Esta es la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Borrar propiedades

Para borrar las propiedades, el proveedor de propiedades de Windows PowerShell debe implementar el método System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* para admitir llamadas desde el cmdlet Clear-ItemProperty. Este método establece una o varias propiedades para el elemento ubicado en la ruta de acceso especificada.

Esta es la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* desde el archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Lo que hay que recordar sobre la implementación de ClearProperty

Las condiciones siguientes pueden aplicarse a la implementación de System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty*:

Asociación de parámetros dinámicos al cmdlet de Clear-ItemProperty

El cmdlet Clear-ItemProperty puede requerir parámetros adicionales que se especifican dinámicamente en tiempo de ejecución. Para proporcionar estos parámetros dinámicos, el proveedor de propiedades de Windows PowerShell debe implementar el método System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters*. Este método devuelve un objeto que tiene propiedades y campos con atributos de análisis similares a una clase de cmdlet o un objeto System.Management.Automation.RuntimeDefinedParameterDictionary. El valor null se puede devolver si no se va a agregar ningún parámetro dinámico.

Esta es la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* desde el archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Compilación del proveedor de Windows PowerShell

Consulte Registro de cmdlets, proveedores y aplicaciones host.

Véase también

del proveedor de Windows PowerShell de

diseñar el proveedor de Windows PowerShell

extensión de tipos de objeto y formato

Registro de cmdlets, proveedores y aplicaciones host