martes, 3 de agosto de 2010

Perfiles en PowerShell (Profiles)

Ya sabemos que en PowerShell podemos definir nuestras propias funciones, alias, etc. Sin embargo, los elementos creados en PowerShell se eliminan una vez que salgamos de PowerShell. La siguiente vez que accedemos los elementos definidos anteriormente no aparecen. ¿Qué podemos hacer para que nuestras definiciones estén disponibles siempre?

PowerShell permite hacer uso de perfiles. Estos perfiles no son más que scripts que se ejecutan al iniciar PowerShell. Podemos aprovechar los perfiles para definir elementos que queremos que estén disponibles en todas las sesiones de PowerShell.

Existen cuatro perfiles:

Perfil que afecta a todos los usuarios y todos los Shells:

$env:Systemroot\System32\WindowsPowershell\v1.0\profile.ps1

Perfil que afecta a todos los usuarios, pero solo al shell PowerShell (por ejemplo, no se aplicaría al shell Exchange Management Shell):

$env:Systemroot\System32\WindowsPowershell\v1.0\Microsoft.PowerShell_profile.ps1

Perfil que afecta un usuario y todos los Shells:

$env:UserProfile\Documents\WindowsPowershell\profile.ps1

Perfil que afecta a un usuario y solo al shell PowerShell:

$env:UserProfile\Documents\WindowsPowershell\Microsoft.PowerShell_profile.ps1


Los perfiles son Scripts, por lo que se ven afectados por la directiva de ejecución. La directiva de ejecución, por defecto, solo permite la ejecución de scripts firmados digitalmente. Para realizar pruebas de perfiles sin tener que firmarlos digitalmente, ejecutar el siguiente cmdlet:

Set-ExecutionPolicy RemoteSigned

Una vez hecho esto, crear los archivos anteriores con líneas Write-Host y verificar que se cargan correctamente. La siguiente imagen muestra PowerShell recien arrancado:

No hay comentarios:

Publicar un comentario