about_Providers

Descripción breve

Describe cómo los proveedores de PowerShell proporcionan acceso a datos y componentes que, de otro modo, no serían fácilmente accesibles desde 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 .NET que proporcionan acceso a almacenes de datos especializados para facilitar la visualización y administración. Los datos aparecen en una unidad y se 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 en 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 parámetros 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 Unidades OutputType
Alias Alias: System.Management.Automation.AliasInfo
Certificado Cert: Microsoft.PowerShell.Commands.X509StoreLocation
System.Security.Cryptography.X509Certificates.X509Certificate2
Entorno Env: System.Collections.DictionaryEntry
FileSystem C: (*) System.IO.FileInfo
System.IO.DirectoryInfo
Función Función: System.Management.Automation.FunctionInfo
Registro HKLM: HKCU: Microsoft.Win32.RegistryKey
Variable Variable: System.Management.Automation.PSVariable
WSMan WSMan: Microsoft.WSMan.Management.WSManConfigContainerElement

(*) Las unidades filesystem varían en cada sistema.

También puede crear sus propios proveedores de PowerShell y puede instalar proveedores que otros desarrollen. Para enumerar los proveedores que están disponibles en la sesión, escriba:

Get-PSProvider

Instalación y eliminación de proveedores

Normalmente, los proveedores se instalan a través de módulos de PowerShell. Al importar el módulo, se carga el proveedor en la sesión. No se pueden desinstalar los proveedores integrados. Puede desinstalar proveedores cargados por otros módulos.

Puede descargar un proveedor de la sesión actual mediante el Remove-Module 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

En la salida se enumeran los proveedores integrados y los proveedores que agregó a la sesión.

Cmdlets del proveedor

Los cmdlets siguientes 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 diferentes 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 para New-Item crear un nuevo alias.

Para obtener información detallada sobre cualquiera de los cmdlets siguientes, escriba:

Get-Help <cmdlet-name> -Detailed

Cmdlets childItem

Cmdlets de contenido

Cmdlets de elemento

Cmdlets ItemProperty

Cmdlets de ubicación

Cmdlets de ruta de acceso

Cmdlets de PSDrive

PSProvider Cmdlets

Visualización de 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.

El proveedor permite ver, navegar y cambiar elementos del almacén de datos como si fueran datos de un sistema de archivos. El nombre de la unidad que admite tiene acceso al almacén de datos.

La unidad aparece en la presentación predeterminada del cmdlet, pero puede obtener información Get-PSProvider sobre la unidad del proveedor mediante el cmdlet Get-PSDrive . 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 del proveedor como lo haría en una unidad del sistema de archivos.

Para ver el contenido de una unidad de proveedor, use Get-Item o Get-ChildItem cmdlets. 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 de cualquier unidad desde otra unidad incluyendo 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

Paso a través de datos jerárquicos

Puede desplazarse por una unidad de proveedor igual que lo haría con una unidad de disco duro. Si los datos se organizan en una jerarquía de elementos dentro de 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 Set-Location comando, como:

Set-Location HKLM:\SOFTWARE\

Si algún elemento del nombre completo incluye espacios, debe incluir el nombre entre comillas dobles ( " ). En el ejemplo siguiente se muestra una ruta de acceso completa que incluye espacios.

"C:\Program Files\Internet Explorer\iexplore.exe"

También puede usar referencias relativas a ubicaciones. Un punto ( . ) representa la ubicación actual. Por ejemplo, si está en la clave del Registro y desea enumerar las subclaves del Registro en la HKLM:\Software\Microsoft HKLM:\Software\Microsoft\PowerShell clave, escriba el siguiente comando:

Get-ChildItem .\PowerShell

Además, double-dots ( .. ) hace referencia al directorio o contenedor directamente encima de la ubicación actual. Puede usar double-dots ( .. ) para navegar por una jerarquía de proveedores.

PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\> cd ..\..\LanmanWorkstation\Parameters
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters>

Inicio del proveedor

Los proveedores también tienen una ubicación principal. El proveedor comparte esta PSDrives 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\username
Function
Variable
Certificate

El proveedor FileSystem es el único proveedor que tiene un valor predeterminado para Inicio. Es el mismo valor que $Home . Para obtener más información, vea 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 isn't 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 Get-ChildItem cmdlets y . Solo puede usar este parámetro cuando use o Get-Item Get-ChildItem en la Cert: unidad.

Para obtener una lista de los parámetros dinámicos que admite un proveedor, vea el archivo de Ayuda del proveedor. Escriba:

Get-Help <provider-name>

Por ejemplo:

Get-Help certificate

Información sobre los proveedores

Aunque todos los datos del proveedor aparecen en las unidades y se usan los mismos métodos para desplazarse por ellas, la similitud se detiene allí. Los almacenes de datos que expone el proveedor pueden ser tan variados como Active Directory y buzones de Microsoft Exchange Server.

Para obtener información sobre los proveedores de PowerShell individuales, 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

Consulte también

about_Locations

about_Path_Syntax