Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Debe implementar un proveedor de Windows PowerShell si el producto o la configuración expone un conjunto de datos almacenados, como una base de datos que el usuario querrá navegar o examinar. Además, si el producto proporciona un contenedor, incluso si no es un contenedor de varios niveles, tiene sentido implementar un proveedor de Windows PowerShell. Por ejemplo, puede que quiera implementar un proveedor de contenedores de Windows PowerShell si el verbo de cmdlet Copy, Move, Rename, New o Remove tiene sentido como una operación en los datos de configuración o producto.
Rutas de acceso de Windows PowerShell identifican el proveedor
El entorno de ejecución de Windows PowerShell usa rutas de acceso de Windows PowerShell para acceder al proveedor de Windows PowerShell adecuado. Cuando un cmdlet especifica una de estas rutas de acceso, el entorno de ejecución sabe qué proveedor usar para acceder al almacén de datos asociado. Estas rutas de acceso incluyen rutas de acceso calificadas por unidades, rutas de acceso calificadas por el proveedor, rutas de acceso directas del proveedor y rutas de acceso internas del proveedor. Cada proveedor de Windows PowerShell debe admitir una o varias de estas rutas de acceso.
Para obtener más información sobre las rutas de acceso de Windows PowerShell, consulte Funcionamiento de Windows PowerShell.
Definición de una ruta de acceso de Drive-Qualified
Para permitir que el usuario acceda a los datos ubicados en una unidad física, el proveedor de Windows PowerShell debe admitir una ruta de acceso calificada por la unidad. Esta ruta de acceso comienza con el nombre de unidad seguido de dos puntos (:), por ejemplo, mydrive:\abc\bar.
Definición de una ruta de acceso de Provider-Qualified
Para permitir que el entorno de ejecución de Windows PowerShell inicialice e desinicie el proveedor, el proveedor de Windows PowerShell debe admitir una ruta de acceso calificada por el proveedor. Por ejemplo, FileSystem::\\uncshare\abc\bar es la ruta de acceso calificada por el proveedor FileSystem proporcionada por Windows PowerShell.
Definición de una ruta de acceso de Provider-Direct
Para permitir el acceso remoto al proveedor de Windows PowerShell, debe admitir una ruta de acceso directa del proveedor para pasar directamente al proveedor de Windows PowerShell para la ubicación actual. Por ejemplo, el proveedor de Windows PowerShell del Registro puede usar \\server\regkeypath como ruta de acceso directa del proveedor.
Definición de una ruta de acceso de Provider-Internal
Para permitir que el cmdlet del proveedor acceda a los datos mediante interfaces de programación de aplicaciones (API) que no son de Windows PowerShell, el proveedor de Windows PowerShell debe admitir una ruta de acceso interna del proveedor. Esta ruta de acceso se indica después de "::" en la ruta de acceso calificada por el proveedor. Por ejemplo, la ruta de acceso interna del proveedor del proveedor de Windows PowerShell del sistema de archivos es \\uncshare\abc\bar.
Cambio de datos almacenados
Al invalidar métodos que modifican el almacén de datos subyacente, llame siempre a la System.Management.Automation.Provider.CmdletProvider.WriteItemObject* método con la versión más up-to-date del elemento cambiado por ese método. La infraestructura del proveedor determina si el objeto de elemento debe pasarse a la canalización, como cuando el usuario especifica el parámetro -PassThru. Si recuperar el elemento de fecha más up-toes una operación costosa (con un rendimiento), puede probar la propiedad Context.PassThru para determinar si realmente necesita escribir el elemento resultante.
Elegir una clase base para el 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, que se describe en esta sección, que es más adecuada para sus requisitos.
Cada clase base del proveedor de Windows PowerShell pone a disposición un conjunto de cmdlets. En esta sección se describen los cmdlets, pero no se describen sus parámetros.
Con el estado de sesión, el entorno de ejecución de Windows PowerShell hace que varios cmdlets de ubicación estén disponibles para determinados proveedores de Windows PowerShell, como los cmdlets de Get-Location
, Set-Location
, Pop-Location
y Push-Location
. Puede usar el cmdlet Get-Help
para obtener información sobre estos cmdlets de ubicación.
CmdletProvider Base (clase)
La clase System.Management.Automation.Provider.CmdletProvider define un proveedor básico de Windows PowerShell. Esta clase admite la declaración del 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.
El estado de sesión proporciona la implementación de este cmdlet.
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, quitar unidades existentes e inicializar unidades predeterminadas. Por ejemplo, el proveedor FileSystem proporcionado por Windows PowerShell inicializa unidades para todos los volúmenes montados, como unidades de disco duro y unidades de dispositivo CD/DVD.
Esta clase deriva de la clase base System.Management.Automation.Provider.CmdletProvider. En la tabla siguiente se enumeran los cmdlets expuestos por esta clase. Además de los enumerados, el cmdlet Get-PSDrive
(expuesto por estado de sesión) es un cmdlet relacionado que se usa para recuperar unidades disponibles.
Cmdlet | Definición |
---|---|
New-PSDrive |
Crea una nueva unidad para la sesión y transmite la información de la unidad. |
Remove-PSDrive |
Quita 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 funcionalidad de navegación o contenedor. Esta clase deriva de la clase base System.Management.Automation.Provider.DriveCmdletProvider. En la tabla siguiente se enumeran los cmdlets expuestos por esta clase.
Cmdlet | Definición |
---|---|
Clear-Item |
Borra el contenido actual de los elementos en la ubicación especificada y lo reemplaza por el valor "clear" 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 de acceso 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 caracteres comodín de una ruta de acceso de Windows PowerShell y transmite la información de ruta de acceso. |
Test-Path |
Comprueba la ruta de acceso especificada y devuelve true si existe y false de lo 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 contenedores de Windows PowerShell que expone un contenedor, para los elementos del almacén de datos, al usuario. Tenga en cuenta que un proveedor de contenedores de Windows PowerShell solo se puede usar cuando hay un contenedor (sin 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. En la tabla siguiente se definen los cmdlets implementados por esta clase.
Cmdlet | Definición |
---|---|
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 |
Quita los 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 los elementos que usan más de un contenedor. Esta clase deriva de la clase base System.Management.Automation.Provider.ContainerCmdletProvider. En la tabla siguiente se enumeran los cmdlets expuestos por esta clase.
Cmdlet | Definición |
---|---|
Combine-Path |
Combina dos rutas de acceso en una única ruta de acceso mediante un delimitador específico del proveedor entre rutas de acceso. Este cmdlet transmite cadenas. |
Move-Item |
Mueve los 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 usar para analizar una ruta de acceso de Windows PowerShell para admitir el parámetro Parent
. Transmite la cadena de ruta de acceso primaria.
Seleccione Interfaces de proveedor para admitir
Además de derivar de una de las clases base de Windows PowerShell, el proveedor de Windows PowerShell puede admitir otras funciones derivando de una o varias de las siguientes interfaces de proveedor. En esta sección se definen esas interfaces y los cmdlets admitidos por cada uno. No describe los parámetros de los cmdlets compatibles con la interfaz. La información de 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 en el contenido de un elemento de datos. En la tabla siguiente se enumeran los cmdlets expuestos por esta interfaz.
Cmdlet | Definición |
---|---|
Add-Content |
Anexa 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 "clear". 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 un proveedor de Windows PowerShell de propiedad que realiza operaciones en las propiedades de los elementos del almacén de datos. En la tabla siguiente se enumeran los cmdlets expuestos por esta interfaz.
Nota:
El parámetro Path
de estos cmdlets indica una ruta de acceso a un elemento en lugar de identificar una propiedad.
Cmdlet | Definición |
---|---|
Clear-ItemProperty |
Establece las propiedades de los elementos especificados en el valor "clear". 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 las 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 de System.Management.Automation.Provider.IDynamicPropertyCmdletProviderProvider, derivada de System.Management.Automation.Provider.IPropertyCmdletProvider, define un proveedor que especifica parámetros dinámicos para sus cmdlets admitidos. Este tipo de proveedor controla las operaciones para las que las propiedades se pueden definir en tiempo de ejecución, por ejemplo, una nueva operación de propiedad. Estas operaciones no son posibles en los elementos que tienen propiedades definidas estáticamente. En la tabla siguiente se enumeran los cmdlets expuestos por esta interfaz.
Cmdlet | Definición |
---|---|
Copy-ItemProperty |
Copia una propiedad del elemento especificado en 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 |
Quita 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 establecer información del descriptor de seguridad para un elemento del almacén de datos. En la tabla siguiente se enumeran los cmdlets expuestos por esta interfaz.
Cmdlet | Definición |
---|---|
Get-Acl |
Recupera la información contenida en una lista de control de acceso (ACL), que forma parte de un descriptor de seguridad usado para proteger los recursos del sistema operativo, por ejemplo, un archivo o un objeto. |
Set-Acl |
Establece la información de una ACL. Está en forma de una instancia de System.Security.AccessControl.ObjectSecurity en los elementos designados para la ruta de acceso especificada. Este cmdlet puede establecer información sobre archivos, claves y subclaves en el Registro, o cualquier otro elemento de proveedor, si el proveedor de Windows PowerShell admite la configuración de información de seguridad. |
Véase también
creación de proveedores de Windows PowerShell