Acerca de los proveedores
Descripción breve
Describe cómo los proveedores de PowerShell proporcionan acceso a datos y componentes que, de lo contrario, no serían fácilmente accesibles en la línea de comandos. Los datos se presentan en un formato coherente que se parece a una unidad del sistema de archivos.
Descripción larga
Los proveedores de PowerShell son programas basados en Microsoft .NET Framework que hacen que los datos de un almacén de datos especializado estén disponibles en PowerShell para poder verlos y administrarlos.
Los datos que expone un proveedor aparecen en una unidad y accede a los datos en una ruta de acceso como lo haría en una unidad de disco duro. Puede usar cualquiera de los cmdlets integrados que admite el proveedor para administrar los datos de la unidad del proveedor. Además, puede usar cmdlets personalizados diseñados especialmente para los datos.
Los proveedores también pueden agregar parámetros dinámicos a los cmdlets integrados. Estos son parámetros que solo están disponibles cuando se usa el cmdlet con los datos del proveedor.
Proveedores integrados
PowerShell incluye un conjunto de proveedores integrados que puede usar para acceder a los diferentes tipos de almacenes de datos.
Proveedor | Unidad | Almacén de datos |
---|---|---|
Alias | Alias: | Alias de PowerShell |
Certificado | Cert: | Certificados x509 para las firmas digitales |
Entorno | Env: | Variables de entorno de Windows |
FileSystem | (*) | Unidades, directorios y archivos del sistema de archivos |
Función | Función: | Funciones de PowerShell |
Registro | HKLM:, HKCU: | Registro de Windows |
Variable | Variable: | Variables de PowerShell |
WSMan | WSMan: | Información de configuración de WS-Management |
(*) Las unidades FileSystem varían en cada sistema.
También puede crear sus propios proveedores de PowerShell y puede instalar proveedores que otros desarrollan. Para enumerar los proveedores que están disponibles en la sesión, escriba:
Get-PSProvider
Instalación y eliminación de proveedores
Los proveedores de PowerShell se entregan a usted en complementos de PowerShell, que son programas basados en .NET Framework que se compilan en archivos .dll. Los complementos pueden incluir proveedores y cmdlets.
Antes de usar las características del proveedor, debe instalar el complemento y, a continuación, agregarlo a la sesión de PowerShell. Para obtener más información, consulte about_PSSnapins.
No puede desinstalar un proveedor, aunque puede quitar el complemento de PowerShell para el proveedor de la sesión actual. Si lo hace, quitará todo el contenido del complemento, incluidos sus cmdlets.
Para quitar un proveedor de la sesión actual, use el Remove-PSSnapin
cmdlet . Este cmdlet no desinstala el proveedor, pero hace que el proveedor no esté disponible en la sesión.
También puede usar el Remove-PSDrive
cmdlet para quitar cualquier unidad de la sesión actual. Estos datos de la unidad no se ven afectados, pero la unidad ya no está disponible en esa sesión.
Visualización de proveedores
Para ver los proveedores de PowerShell en el equipo, escriba:
Get-PSProvider
La salida enumera los proveedores integrados y los proveedores que agregó a la sesión.
Los cmdlets del proveedor
Los siguientes cmdlets están diseñados para trabajar con los datos expuestos por cualquier proveedor. Puede usar los mismos cmdlets de la misma manera para administrar los distintos tipos de datos que exponen los proveedores. Después de aprender a administrar los datos de un proveedor, puede usar los mismos procedimientos con los datos de cualquier proveedor.
Por ejemplo, el New-Item
cmdlet crea un nuevo elemento. En la C:
unidad compatible con el proveedor FileSystem , puede usar New-Item
para crear un nuevo archivo o carpeta. En las unidades compatibles con el proveedor del Registro , puede usar New-Item
para crear una nueva clave del Registro. En la Alias:
unidad, puede usar New-Item
para crear un nuevo alias.
Para obtener información detallada sobre cualquiera de los siguientes cmdlets, escriba:
Get-Help <cmdlet-name> -Detailed
Cmdlets ChildItem
Cmdlets de contenido
Cmdlets de elemento
Cmdlets ItemProperty
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
Cmdlets de ubicación
Cmdlets de ruta de acceso
Cmdlets de PSDrive
PSProvider Cmdlets
Visualización de los datos del proveedor
La principal ventaja de un proveedor es que expone sus datos de una manera familiar y coherente. El modelo de presentación de datos es una unidad del sistema de archivos.
Para usar los datos que expone el proveedor, puede verlos, desplazarse por él y cambiarlos como si fueran datos en un disco duro. Por lo tanto, la información más importante sobre un proveedor es el nombre de la unidad que admite.
La unidad aparece en la presentación predeterminada del Get-PSProvider
cmdlet, pero puede obtener información sobre la unidad del proveedor mediante el Get-PSDrive
cmdlet . Por ejemplo, para obtener todas las propiedades de la unidad Function: , escriba:
Get-PSDrive Function | Format-List *
Puede ver y desplazarse por los datos de una unidad de proveedor como lo haría en una unidad del sistema de archivos.
Para ver el contenido de una unidad de proveedor, use los cmdlets Get-Item o Get-ChildItem. Escriba el nombre de la unidad seguido de dos puntos (:). Por ejemplo, para ver el contenido de la unidad Alias: , escriba:
Get-Item alias:
Puede ver y administrar los datos en cualquier unidad desde otra unidad si incluye el nombre de la unidad en la ruta de acceso. Por ejemplo, para ver la clave del Registro HKLM\Software en la unidad HKLM: desde otra unidad, escriba:
Get-ChildItem HKLM:\SOFTWARE\
Para abrir la unidad, use el cmdlet Set-Location. Recuerde los dos puntos al especificar la ruta de acceso de la unidad. Por ejemplo, para cambiar la ubicación al directorio raíz de la unidad Cert: , escriba:
Set-Location cert:
A continuación, para ver el contenido de la unidad Cert: , escriba:
Get-ChildItem
Movimiento a través de datos jerárquicos
Puede desplazarse por una unidad de proveedor como lo haría con una unidad de disco duro.
Si los datos se organizan en una jerarquía de elementos dentro de los elementos, use una barra diagonal inversa (\
) para indicar un elemento secundario. Utilice el siguiente formato:
drive:\location\child-location\...
Por ejemplo, para cambiar la ubicación a la clave del Registro HKLM\Software, escriba un comando Set-Location, como:
Set-Location HKLM:\SOFTWARE\
También puede usar referencias relativas a ubicaciones. Un punto (.) representa la ubicación actual. Por ejemplo, si está en la clave del Registro HKLM:\Software\Microsoft y desea enumerar las subclaves del Registro en la clave HKLM:\Software\Microsoft\PowerShell, escriba el siguiente comando:
Get-ChildItem .\PowerShell
Inicio del proveedor
Los proveedores también tienen una ubicación principal . Todos los proveedores comparten PSDrives
esta ubicación. Se puede recuperar viendo la propiedad Home del proveedor.
Get-PSProvider | Format-Table Name, Home
Name Home
---- ----
Registry
Alias
Environment
FileSystem C:\Users\robreed
Function
Variable
Certificate
El proveedor FileSystem es el único proveedor que tiene un valor predeterminado para Inicio. Es el mismo valor que $Home
ver about_Automatic_Variables.
Puede establecer el directorio Inicio de un proveedor, para la sesión actual, mediante su propiedad .
(Get-PSProvider FileSystem).Home = "C:\"
El ~
carácter se puede usar para representar el directorio principal del proveedor.
Si el proveedor no tiene establecida una ubicación de inicio , verá un error.
Cert:\> Set-Location ~
Set-Location : Home location for this provider is not set. To set the home
location, call "(get-psprovider 'Certificate').Home = 'path'".
At line:1 char:1
+ Set-Location ~
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Set-Location],
PSInvalidOperationException
...
Búsqueda de parámetros dinámicos
Los parámetros dinámicos son parámetros de cmdlet que un proveedor agrega a un cmdlet. Estos parámetros solo están disponibles cuando el cmdlet se usa con el proveedor que los agregó.
Por ejemplo, la Cert:
unidad agrega el parámetro CodeSigningCert a los Get-Item
cmdlets y Get-ChildItem
. Este parámetro solo se puede usar cuando se usa Get-Item
o Get-ChildItem
en la Cert:
unidad.
Para obtener una lista de los parámetros dinámicos que admite un proveedor, consulte el archivo de ayuda del proveedor. Escriba:
Get-Help <provider-name>
Por ejemplo:
Get-Help certificate
Información sobre proveedores
Aunque todos los datos del proveedor aparecen en unidades y se usan los mismos métodos para desplazarse por ellos, la similitud se detiene allí. Los almacenes de datos que expone el proveedor pueden ser tan variados como ubicaciones de Active Directory y Microsoft Exchange Server buzones.
Para obtener información sobre proveedores individuales de PowerShell, escriba:
Get-Help <ProviderName>
Por ejemplo:
Get-Help registry
Para obtener una lista de temas de Ayuda sobre los proveedores, escriba:
Get-Help * -Category Provider