Lo que PowerShell llama Providers, podríamos definirlos como estructuras de datos que son mostradas en un formato entendible por PowerShell.
Algunos ejemplos de Providers básicos de PowerShell son:
- Sistema de Archivos
- Registro de Windows
- Almacén de certificados
- Directorio Activo
- WSMan
Los módulos o snapin pueden añadir nuevos Providers a powerShell
El cmdlet Get-PSProvider nos permite ver los Provider que hay instalados en una sesión.
Los datos son presentados como objetos de tipo PSDrive. El Provider se encarga de traducir los comandos ejecutados en Powershell en los comandos que entiende cada uno de los orígenes de datos (sistema de archivos, registro…)
Existe la posibilidad de que algunos PSSnapin añadan nuevos Providers, como en el siguiente ejemplo Citrix
Podemos ver los disponibles con Get-PSDrive
Los PSDrive actúan como sistemas de archivos, no están limitados a letras (como las unidades de disco tradicionales C:, D: …) Existen algunos ya creados por defecto, pero también podemos crear nuevos, que existirán mientras dure la sesión PowerShell
Para crear un nuevo PSDrive utilizamos New-PSDrive, indicando:
- Nombre
- Provider
- Ruta
- Opciones: credenciales, persistencia
Los PSDrive que creemos no tienen porque ser visibles en Windows. Habŕá algunos que por defecto si lo sean, por ejemplo las unidades de disco, pero podemos crear nuevos que no sean vistas desde Windows.
El uso de PSDrives nos permite utilizar el mismo conjunto de cmdlets para acceder a ellos, independientemente del Provider que tengan de origen (sistema de archivos, registro …)
Sistema de Archivos
Podemos utilizar los comandos tradicionales de Windows para navegar por su estructura. Por defecto, PowerShell detecta los discos que Windows ve, pero podemos crear enlaces a recursos concretos asociándoles un nombre.
1 |
Get-ChildItem C: |
1 |
Get-ChildItem C:\Users |
Registro
- Solo funciona en el equipo local
- Por defecto tenemos HKLM y HKCU
- No soporta el filtrado por defecto pero existe alguna alternativa para lograrlo
- Parte de la información es accesible con la propiedad ItemProperty
1 |
Get-ChildItem HKCU: |
1 |
Get-ChildItem HKLM:\Software |
Certificados
- Permite acceder a los certificados de usuario y equipo local
- Permite acceder de forma jerárquica a los certificados
- Trata los certificados como si fuesen archivos
1 |
Get-ChildItem Cert: |
1 |
Get-ChildItem Cert:\Currentuser |
Variables de entorno
- Permite acceder a las variables de entorno (nombre de equipo, usuario…)
- Solo podemos acceder en modo lectura
1 |
Get-ChildItem Env: |
1 |
Get-ChildItem Env:\COMPUTERNAME |
Gestionar PSDrive
A veces es interesante crear un nuevo PSDrive, ya sea como acceso directo a una carpeta, clave de registro o para simplificar y facilitar la comprensión del código dando nombres a recursos específicos.
- Para crear nuevos PSDrive utilizamos New-PSDrive
1 |
New-PSDrive -Name Ejemplos -PSProvider FileSystem -Root c:\Ejemplos |
Borrar un PSDrive
Como es lógico, también tenemos la opción de borrarlos
- Utilizamos Remove-PSDrive para borrar un PSDrive de forma manual
- No podemos borrar dispositivos de Windows
- No podemos borrar el PSDrive en el que nos encontramos
1 |
Remove-PSDrive -Name Ejemplos |
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Un comentario
Pingback: Curso básico de Powershell: Ejecución de scripts