Compartir a través de


Creación de un proveedor de propiedades Windows PowerShell

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

Nota:

Windows PowerShell proporciona un archivo plantilla que puedes usar para desarrollar un proveedor de PowerShell para Windows. El archivo TemplateProvider.cs está disponible en el Microsoft Windows Software Development Kit para Windows Vista y los componentes de ejecución de .NET Framework 3.0. Para las instrucciones de descarga, consulta Cómo instalar Windows PowerShell y descargar el SDK de Windows PowerShell. La plantilla descargada está disponible en el <directorio de Ejemplos> de PowerShell. Deberías hacer una copia de este archivo y usarla para crear un nuevo proveedor de PowerShell para Windows, eliminando cualquier funcionalidad que no necesites. Para más información sobre otras implementaciones de proveedores de Windows PowerShell, consulte Diseñando su proveedor de PowerShell para Windows.

Precaución

Los métodos de tu proveedor inmobiliario deben escribir cualquier objeto usando el método System.Management.Automation.Provider.CmdletProvider.Writepropertyobject* .

Definición del proveedor PowerShell de Windows

Un proveedor de propiedades debe crear una clase .NET que soporte la interfaz System.Management.Automation.Provider.IPropertyCmdletProvider . Aquí está 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 puede conectarse a cualquiera de las clases base de provider, excepto a la clase System.Management.Automation.Provider.DriveCmdletProvider . Añade la funcionalidad base que requiere la clase base que estás usando. Para más información sobre las clases base, consulte Diseñando su proveedor de PowerShell para Windows.

Recuperación de propiedades

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

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

Se recomienda que la implementación de System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* soporte la expansión comodina de los nombres de propiedades para cada elemento de la lista de selección. Para ello, utiliza la clase System.Management.Automation.WildcardPattern para realizar la coincidencia de patrones comodines.

Aquí está la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.GetProperty* del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Cosas a recordar sobre la implementación de GetProperty

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

Adjuntar parámetros dinámicos al Get-ItemProperty cmdlet

El Get-ItemProperty cmdlet 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 path parámetro indica un camino interno del proveedor totalmente cualificado, mientras que especifica providerSpecificPickList las propiedades específicas del proveedor introducidas en la línea de comandos. Este parámetro puede estar null 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 similar a una clase cmdlet o un objeto System.Management.Automation.RuntimeDefinedParameterDictionary . El entorno de ejecución de Windows PowerShell utiliza el objeto devuelto para añadir los parámetros al cmdlet.

Aquí está 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 soportar llamadas desde el Set-ItemProperty cmdlet. Este método establece una o más propiedades del elemento en el camino especificado y sobrescribe las propiedades suministradas según sea necesario. System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* también escribe una instancia de un objeto System.Management.Automation.PSObject que representa una bolsa de propiedades de las propiedades actualizadas.

Aquí está la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.SetProperty* del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

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

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

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

El Set-ItemProperty cmdlet 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 PowerShell de Windows 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 similar a una clase cmdlet o a un objeto System.Management.Automation.RuntimeDefinedParameterDictionary . El null valor puede devolverse si no se añaden parámetros dinámicos.

Aquí está la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.GetPropertyDynamicParameters* del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Propiedades de desmonte

Para limpiar propiedades, el proveedor de propiedades de Windows PowerShell debe implementar el método System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* para soportar llamadas desde el Clear-ItemProperty cmdlet. Este método establece una o más propiedades para el elemento ubicado en el camino especificado.

Aquí está la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.ClearProperty* del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Cosas a recordar sobre la implementación de ClearProperty

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

Adjuntar parámetros dinámicos al Clear-ItemProperty cmdlet

El Clear-ItemProperty cmdlet 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 similar a una clase cmdlet o a un objeto System.Management.Automation.RuntimeDefinedParameterDictionary . El null valor puede devolverse si no se añaden parámetros dinámicos.

Aquí está la implementación predeterminada de System.Management.Automation.Provider.IPropertyCmdletProvider.ClearPropertyDynamicParameters* del archivo TemplateProvider.cs proporcionado por Windows PowerShell.

Construcción del proveedor PowerShell de Windows

Consulta cómo registrar cmdlets, proveedores y aplicaciones anfitrionas.

Véase también

Proveedor de PowerShell para Windows

Diseña tu proveedor PowerShell para Windows

Ampliación de los tipos de objetos y formato

Cómo registrar comandantes, proveedores y aplicaciones anfitrionas