¿Qué es psprovider en powershell?

¿Qué es psprovider en powershell?

Soy nuevo en PowerShell y estoy tratando de comprender el concepto de psprovider. Sé que puedo Get-PSProviderusarmostrar una lista de proveedores de ps disponibles

Toda la ayuda que estoy encontrando supone que sé cosas que no sé. Buscando una explicación básica de psprovider.

Respuesta1

Esto es del archivo de ayuda de Get-PSProvider:

Among other things, Windows PowerShell providers determine which 
data stores you can navigate through.

Hay dos conceptos principales enterrados aquí. El primero es el concepto de almacén de datos o, si se prefiere, de contenedor. El segundo es el concepto de navegación.

El concepto de almacén de datos es básico para operar con datos. Si ha trabajado con scripts o programación, está familiarizado con las variables. De hecho, las variables son uno de los tipos de almacenes de datos enumerados por Get-PSProvider. Si ha trabajado con bases de datos o sitios web, estará familiarizado con otros tipos de almacenes de datos. Un segundo tipo de almacén de datos navegables que se le presenta es un sistema de archivos. Si ha trabajado con Windows, estará familiarizado con las carpetas y los archivos, e incluso con la navegación por carpetas y subcarpetas. Las carpetas se denominan directorios en Powershell, pero es el mismo concepto.

El Registro es un tipo diferente de almacén de datos.

Lo que es nuevo para mí, y quizás para usted, es la idea de generalizar todos estos diferentes tipos de almacenes de datos en una superclase general y luego definir ciertas operaciones en toda la superclase.

Por ejemplo, Get-ChildItem es una operación de navegación básica que le permite recorrer un árbol de contenedores organizados en una jerarquía. Pero en lugar de implementar un GCI especializado para archivos, otro para entradas del Registro, otro para variables, etc., optaron por implementar un único GCI que pudiera adaptarse para su uso con cualquiera de esos tres y varios más.

Este es solo el comienzo de los conceptos, pero espero que ayude.

Respuesta2

Los PSProviders son básicamente almacenes de datos. puede manejarlos como una carpeta normal del sistema de datos. get-psprovidersobtendrá una lista de todos los psproviders.

Ejemplo: con cmd.exeno fue posible cambiar su ubicación actual en el Registro. tenías la posibilidad de cambiar la configuración del registro con cmd, pero no puedes manejarlo como un directorio o cdel registro.

en PowerShell, el Registro es un PSProvider. significa que puede acceder a él como a una carpeta del sistema de datos. si escribe, cd hklm:en realidad está dentro del registro de la máquina local y puede acceder a su contenido conGet-ChildItem

esto tiene la ventaja de que puede proporcionar, por ejemplo, PSDrive que realmente apunten al registro.

New-PSDrive -name G -PSProvider Registry -Root HKCU:\Software

La unidad G:\ ahora está asignada a Usuario actual > Registro de software. (solo para la PSSession actual)

Hay muchas funcionalidades que puedes hacer con PSProviders. debe ejecutar y leer get-help about_providerspara obtener más información.

información relacionada