17 ago 2013

Tunéate tu PowerShell

El post de hoy, en pleno Agosto y siendo sábado, lo dedicamos a tunearnos nuestra PowerShell conociendo los ficheros profile, los cuales permiten configurar todo lo que queramos realizar al arrancar nuestra PowerShell.

Un perfil es un archivo o conjunto de éstos que especifican la configuración y personalización de un entorno o aplicación. En PowerShell también existe el concepto de perfil. En PowerShell se pueden distinguir lo que es la shell de sistema, junto a las shell con módulos cargados de otros productos. Por ejemplo, con Windows 7 se dispone por defecto de una PowerShell para el sistema.

Existen 4 perfiles, jerarquizados por 2 tipos:

  • $env:userprofile\Mis documentos\Windows PowerShell\profile.ps1. Es un perfil para todos los escenarios dónde se ejecuta PowerShell, ya sea shell de sistema o shell de otros producto.
  • $env:userprofile\Mis Documentos\Windows PowerShell\ Microsoft.PowerShell_profile.ps1 Es un perfil para sólo el entorno PowerShell instalado por defecto, la shell del sistema.
  • $env:windir\system32\Windows PowerShell\v1.0\profile.ps1 Perfil para todos los escenarios, y para todos los usuarios de la máquina.
  • $env:windir\system32\Windows PowerShell\v1.0\ Microsoft.PowerShell_profile.ps1 Perfil para el entorno PowerShell instalado por defecto, que se aplica a todos los usuarios.
Para los sistemas de 64 bits los perfiles tienen la misma ruta, salvo que en vez de estar en System32, se encuentran en Syswow64. La ejecución de los perfiles al arrancar la PowerShell tiene el siguiente orden:
  1. $env:windir\system32\Windows PowerShell\v1.0\profile.ps1
  2. $env:windir\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1
  3. $env:userprofile\Mis documentos\Windows PowerShell\profile.ps1
  4. $env:userprofile\MisDocumentos\WindowsPowerShell\ Microsoft.PowerShell_profile.ps1

Los perfiles no vienen creados por defecto, por lo que hay que crearlo a través de PowerShell o creando un archivo del tipo PS1. Se puede utilizar la variable $profile para indicar cual debe ser la ruta de creación del perfil de tipo usuario. Para crear los perfiles de máquina se debe ser administrador. El fichero con el perfil no es más que una serie de instrucciones de línea de comandos, muy similar a los perfiles en otras shell. Un ejemplo sería:

#profile.ps1#área para alias y variablesset-alias procesos –value get-process$usuario = $env:username#área para definición de funcionesfunction hora {get-date}function prompt {‘PS ‘ + $(get-location) + ‘ ‘ + $(date) +’ > ’}……#otras áreas útiles para el usuario#mensaje de bienvenida al ejecutar la shell$user = [System.security.principal.Windowsidentity]::GetCurrent()write-host Hola $($user.name) , bienvenido a PowerShell

No hay comentarios:

Publicar un comentario