Perfiles de PowerShell

En este tutorial veremos sobre los perfiles de PowerShell y su uso. Los perfiles de PowerShell te ayudan a personalizar tu entorno y añadir elementos para cada sesión de PowerShell que inicies. El perfil de PowerShell es un script que se ejecuta cada vez que vamos a iniciar PowerShell. Puedes utilizar un perfil PowerShell como un script de inicio de sesión para personalizar el entorno. Usando un perfil PowerShell, puedes añadir comandos, alias, funciones, variables, snap-ins, módulos, PSDrives y cualquier otro elemento específico de la sesión en tu evnironmet. No tendrás que importarlos o volver a crearlos cada vez que ejecutes PowerShell. Se cargarán automáticamente. PowerShell admite varios perfiles para usuarios y programas anfitriones. PowerShell no crea ningún perfil para usted.

Si desea comandos específicos de la sesión, variables, variables de preferencia, alias, funciones, comandos (excepto Set-ExecutionPolicy) y módulos de PowerShell que utiliza con frecuencia, puede utilizar perfiles para cargar en todas las sesiones futuras.

Archivos de perfil

La consola PowerShell soporta los siguientes perfiles:

  • $Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 – Usuario actual, Host actual
  • $Home\Documents\PowerShell\Profile.ps1 – Usuario actual, Todos los Hosts
  • $PsHome\Microsoft.PowerShell_profile.ps1 – Todos los usuarios, Host actual
  • $PsHome\Profile.ps1 – Todos los usuarios, Todos los Hosts

Los perfiles anteriores se muestran en orden de precedencia. El primer perfil de la lista tiene el orden de precedencia más alto. Como puede ver en los perfiles anteriores, tenemos dos variables. Las variables $PSHome y $Home presentan los siguientes valores.

  • $PSHome – Almacena el directorio de instalación de PowerShell
  • $Home – Almacena el directorio de inicio del usuario actual

Otros programas que alojan PowerShell pueden soportar sus propios perfiles. PowerShell Integrated Scripting Environment (ISE) admite los siguientes perfiles específicos de host.

  • $Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 – Usuario actual, Host actual
  • $PsHome\Microsoft.PowerShellISE_profile.ps1 – Todos los usuarios, Host actual

Según Microsoft, en la Ayuda de PowerShell, el perfil «Usuario actual, Host actual» es el perfil al que más a menudo se hace referencia como «su perfil de PowerShell».

Variable de perfil

En PowerShell tenemos una variable automática llamada $Profile. En la variable $Profile se almacenan todas las rutas de los perfiles de PowerShell que están disponibles en la sesión actual. Al ver la variable $Profile, verás la ruta del perfil.

La variable $Profile almacena la ruta del perfil «Usuario actual, Host actual». Los otros perfiles se guardan en las propiedades de nota de la variable $Profile.

Se puede especificar un perfil utilizando las propiedades de la variable. En la consola de Windows PowerShell, tenemos los siguientes valores en la variable $Profile.

  • $Profile – Usuario actual, Host actual
  • $Profile.CurrentUserCurrentHost – Usuario actual, Host actual
  • $Profile.CurrentUserAllHosts – Usuario actual, Todos los Hosts
  • $Profile.AllUsersCurrentHost – Todos los usuarios, Host actual
  • $Profile.AllUsersAllHosts – Todos los usuarios, Todos los Hosts

Puedes utilizar la variable $Profile en tus comandos.

Código:

Test-Path -Path $PROFILETest-Path -Path $PROFILE.CurrentUserCurrentHostTest-Path -Path $PROFILE.CurrentUserAllHostsTest-Path -Path $PROFILE.AllUsersCurrentHostTest-Path -Path $PROFILE.AllUsersAllHosts

Salida:

Los comandos anteriores prueban si el perfil especificado ha sido creado. Como puedes ver la respuesta es falsa para todos ellos. Como hemos mencionado antes, los perfiles no se crean por defecto. Tendrás que crearlos.

Crear un perfil

Para crear un perfil necesitas usar el siguiente comando.

Código:

New-Item -ItemType File -Path $profile -Force

El comando anterior creará un perfil para «Usuario actual, Host actual».

Nota que lo anterior reemplazará cualquier perfil existente. Si quiere asegurarse de que no reemplazará ningún perfil que ya exista y perderá los cambios que ya haya aplicado, puede probar lo siguiente.

Código:

if (-not (Test-Path -Path $profile.AllUsersAllHosts)){ New-Item -ItemType File -Path $profile.AllUsersAllHosts -Force}

El comando anterior comprobará si existe un perfil para «Todos los usuarios, todos los hosts» y, si no existe, creará el perfil.

Para crear un perfil tendrá que ejecutar la consola PowerShell como administrador. Esto se aplica a partir de Windows Vista y versiones posteriores.

Editar un perfil

Si existe un perfil y necesita aplicar algunos cambios o adiciones, necesita usar un editor de texto para editar el perfil. Usando el bloc de notas es una forma fácil de editar el perfil.

Código:

notepad $profile

Como puedes ver abajo mi perfil actual está configurado para proporcionar un mensaje de Bienvenida cuando abro mi consola.

Ahora usaré el comando anterior para aplicar algunos cambios a mi perfil.

Abajo están los cambios que he aplicado.

Luego, cuando he reiniciado la consola de PowerShell, como podéis ver los cambios se han aplicado.

Directrices para los perfiles

A continuación os voy a dar unas directrices sobre la configuración de vuestros perfiles, tal y como las proporciona Microsoft.

Si utiliza varias aplicaciones de host, ponga los elementos que utiliza en todas las aplicaciones de host en su $Profile.CurrentUserAllHostsperfil. Ponga los elementos que son específicos de una aplicación de host, como un comando que establece el color de fondo para una aplicación de host, en un perfil que es específico para esa aplicación de host.

Si es un administrador que está personalizando PowerShell para muchos usuarios, siga estas directrices:

  • Almacene los elementos comunes en el perfil $profile.AllUsersAllHosts
  • Almacene los elementos que son específicos de una aplicación de host en los perfiles $profile.AllUsersCurrentHost que son específicos de la aplicación de host
  • Almacene los elementos para usuarios particulares en los perfiles específicos de usuario

Asegúrese de revisar la documentación de la aplicación de host para cualquier implementación especial de los perfiles de PowerShell.

Sin perfil

Aunque haya creado perfiles para cargar cada vez que abra su consola, se le permite ejecutar PowerShell sin que se cargue ningún perfil. Usted puede hacer esto mediante la ejecución de PowerShell con -NoProfile parámetro. Esto puede hacerse desde cmd.exe, el cuadro de diálogo Ejecutar o el propio PowerShell.

Código:

PowerShell -NoProfile

Política de ejecución

La política de ejecución de PowerShell determina si puede ejecutar scripts y cargar archivos de configuración, incluyendo los perfiles. La política de ejecución «Restringida» es la predeterminada. Puede encontrar más información sobre la política de ejecución de PowerShell aquí. Si utiliza la política «Restringida», impide la ejecución de todos los scripts, incluidos los perfiles. El contenido del perfil no se aplica. Un comando Set-ExecutionPolicy establece y cambia su política de ejecución en todas las sesiones de PowerShell porque el valor se guarda en el registro. No es necesario establecerlo al abrir la consola, ni guardar un comando Set-ExecutionPolicy en el perfil.

Perfil en sesión remota

Los perfiles de PowerShell no se ejecutan automáticamente en sesiones remotas, por lo que los comandos que los perfiles añaden no están presentes en la sesión remota. Además, la variable automática $Profile no se rellena en las sesiones remotas.

Si queremos ejecutar el perfil desde nuestro equipo local, a una sesión remota, necesitamos utilizar el cmdlet Invoke-Command.

El ejemplo siguiente ejecutará el perfil local a una sesión remota.

Código:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -FilePath $profile

Salida:

Como el perfil no se rellenará en la sesión remota, también podemos cargar el perfil remoto en la sesión. Compruebe el siguiente ejemplo.

Código:

$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -ScriptBlock {. "$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Salida:

Espero que el tutorial sobre PowerShell Perfiles es útil.

Por favor, hágame saber sus comentarios y pensamientos.

Su retroalimentación es apreciada.

Enlaces Relacionados

  • Tutoriales de PowerShell
  • Scripts de PowerShell
  • Acerca de los Perfiles | Microsoft Docs
  • Variables Automáticas de PowerShell
  • Operadores Lógicos de PowerShell
  • Política de Ejecución de PowerShell
  • Test-Ruta – Microsoft Docs
  • Nuevo-Elemento – Microsoft Docs
  • Escribir salida – Microsoft Docs
  • Set-ExecutionPolicy – Microsoft Docs
  • Invoke-Command – Microsoft Docs
Summary
Nombre del artículo
PowerShell Profiles
Description
PowerShell Profiles. En este tutorial encontrarás información sobre PowerShell Profiles y su uso. Blog de Stephanos Constantinou
Autor
Stephanos
Nombre del editor
Blog de Stephanos Constantinou
Logotipo del editor

.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.