- 30/11/2017
- 7 minutos para leer
-
- S
- s
- x
- q
- Descripción breve
- Descripción larga
- Los archivos de perfil
- La variable $PROFILE
- Cómo crear un perfil
- Cómo editar un perfil
- Cómo elegir un perfil
- Cómo utilizar un perfil
- Cómo iniciar un perfil
- Añada comandos que faciliten la apertura de su perfil
- Añada una función que liste los alias de cualquier cmdlet
- Personalice su consola
- Añada un prompt de PowerShell personalizado
- El parámetro NoProfile
- Política de perfiles y ejecución
- Perfiles y sesiones remotas
- Ver también
Descripción breve
Describe cómo crear y utilizar un perfil PowerShell.
Descripción larga
Puede crear un perfil de PowerShell para personalizar su entorno y añadir elementos específicos de la sesión a cada sesión de PowerShell que inicie.
Un perfil de PowerShell es un script que se ejecuta cuando se inicia PowerShell. Puede utilizar el perfil como un script de inicio de sesión para personalizar el entorno. Puede añadir comandos, alias, funciones, variables, complementos, módulos y unidades de disco de PowerShel. También puede añadir otros elementos específicos de la sesión a su perfil para que estén disponibles en cada sesión sin tener que importarlos o volver a crearlos.
PowerShell admite varios perfiles para usuarios y programas anfitriones. Sin embargo, no crea los perfiles por usted. Este tema describe los perfiles, y describe cómo crear y mantener los perfiles en su equipo.
Explica cómo utilizar el parámetro NoProfile de la consola de PowerShell (PowerShell.exe) para iniciar PowerShell sin ningún perfil. Y, explicael efecto de la política de ejecución de PowerShell en los perfiles.
Los archivos de perfil
PowerShell admite varios archivos de perfil. Además, los programas de host de PowerShell pueden admitir sus propios perfiles específicos de host.
Por ejemplo, la consola de PowerShell admite los siguientes archivos de perfiles básicos. Los perfiles se enumeran en orden de precedencia. El primer perfil tiene la mayor precedencia.
Descripción | Ruta |
---|---|
Todos los usuarios, todos los hosts | $PSHOME\Profile.ps1 |
Todos los usuarios, host actual | $PSHOME\Microsoft.PowerShell_profile.ps1 |
Usuario actual, todos los hosts | $Home\Documents\PowerShell\Profile.ps1 |
Usuario actual, Host actual | $Home\Documents\PowerShell\ Microsoft.PowerShell_profile.ps1 |
Las rutas del perfil incluyen las siguientes variables:
- La variable
$PSHOME
, que almacena el directorio de instalación dePowerShell - La variable
$Home
, que almacena el directorio de inicio del usuario actual
Además, otros programas que alojan PowerShell pueden soportar sus propiosperfiles. Por ejemplo, Visual Studio Code admite los siguientes perfiles específicos de host.
Descripción | Ruta |
---|---|
Todos los usuarios, Host actual | $PSHOME\Microsoft.VSCode_profile.ps1 |
Usuario actual, Host actual | $Home\Documents\PowerShell\ Microsoft.VSCode_profile.ps1 |
En la ayuda de PowerShell, el perfil «CurrentUser, Current Host» es el perfil al que más a menudo se hace referencia como «su perfil de PowerShell».
La variable $PROFILE
La variable automática $PROFILE
almacena las rutas de los perfiles de PowerShell que están disponibles en la sesión actual.
Para ver la ruta de un perfil, muestre el valor de la variable $PROFILE
. También puede utilizar la variable $PROFILE
en un comando para representar una ruta.
La variable $PROFILE
almacena la ruta del perfil «Usuario actual, Host actual». Los otros perfiles se guardan en propiedades de nota de la variable $PROFILE
.
Por ejemplo, la variable $PROFILE
tiene los siguientes valores en la consola de WindowsPowerShell.
Descripción | Nombre |
---|---|
Usuario actual, Host actual | $PROFILE |
Usuario actual, Host actual | $PROFILE.CurrentUserCurrentHost |
Usuario actual, todos los hosts | $PROFILE.CurrentUserAllHosts |
Todos los usuarios, Host actual | $PROFILE.AllUsersCurrentHost |
Todos los usuarios, todos los hosts | $PROFILE.AllUsersAllHosts |
Debido a que los valores de la variable $PROFILE
cambian para cada usuario y en cada aplicación de host, asegúrese de mostrar los valores de las variables de perfil en cada aplicación de host de PowerShell que utilice.
Para ver los valores actuales de la variable $PROFILE
, escriba:
$PROFILE | Get-Member -Type NoteProperty
Puede utilizar la variable $PROFILE
en muchos comandos. Por ejemplo, el siguiente comando abre el perfil «Usuario actual, host actual» en el Bloc de notas:
notepad $PROFILE
El siguiente comando determina si se ha creado un perfil «Todos los usuarios, todos los hosts» en el equipo local:
Test-Path -Path $PROFILE.AllUsersAllHosts
Cómo crear un perfil
Para crear un perfil PowerShell, utilice el siguiente formato de comando:
if (!(Test-Path -Path <profile-name>)) { New-Item -ItemType File -Path <profile-name> -Force}
Por ejemplo, para crear un perfil para el usuario actual en la aplicación anfitriona dePowerShell actual, utilice el siguiente comando:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
En este comando, la sentencia If
evita que se sobrescriba un perfil existente. Sustituya el valor del marcador de posición <ruta de perfil> por la ruta del archivo de perfil que desea crear.
Nota
Para crear perfiles de «Todos los usuarios» en Windows Vista y versiones posteriores deWindows, inicie PowerShell con la opción Ejecutar como administrador.
Cómo editar un perfil
Puede abrir cualquier perfil de PowerShell en un editor de texto, como el Bloc de notas.
Para abrir el perfil del usuario actual en la aplicaciónhost actual de PowerShell en el Bloc de notas, escriba:
notepad $PROFILE
Para abrir otros perfiles, especifique el nombre del perfil. Por ejemplo, para abrir elperfil para todos los usuarios de todas las aplicaciones host, escriba:
notepad $PROFILE.AllUsersAllHosts
Para aplicar los cambios, guarde el archivo de perfil y, a continuación, reinicie PowerShell.
Cómo elegir un perfil
Si utiliza varias aplicaciones host, ponga los elementos que utiliza en todas las aplicaciones host en su perfil $PROFILE.CurrentUserAllHosts
. Ponga los elementos que son específicos de una aplicación host, como un comando que establece el color de fondo para una aplicación host, en un perfil que es específico para esa aplicación host.
Si usted 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 del host en
$PROFILE.AllUsersCurrentHost
perfiles que son específicos de la aplicación del host - Almacene los elementos para usuarios particulares en los perfiles específicos del usuario
Asegúrese de revisar la documentación de la aplicación del host para cualquier implementación especial de los perfiles de PowerShell.
Cómo utilizar un perfil
Muchos de los elementos que crea en PowerShell y la mayoría de los comandos que ejecuta sólo afectan a la sesión actual. Cuando se finaliza la sesión, los elementos se eliminan.
Los comandos y elementos específicos de la sesión incluyen variables, variables de preferencia, alias, funciones, comandos (excepto Set-ExecutionPolicy) y módulos de PowerShell que se añaden a la sesión.
Para guardar estos elementos y hacerlos disponibles en todas las sesiones futuras, agréguelos a un perfil de PowerShell.
Otro uso común de los perfiles es guardar funciones, alias y variables de uso frecuente. Cuando guarda los elementos en un perfil, puede utilizarlos en cualquier sesión aplicable sin tener que volver a crearlos.
Cómo iniciar un perfil
Cuando abre el archivo de perfil, está en blanco. Sin embargo, puede rellenarlo con las variables, los alias y los comandos que utilice con frecuencia.
Aquí tiene algunas sugerencias para empezar.
Añada comandos que faciliten la apertura de su perfil
Esto es especialmente útil si utiliza un perfil distinto del perfil «Usuario actual,Host actual». Por ejemplo, añada el siguiente comando:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Añada una función que liste los alias de cualquier cmdlet
function Get-CmdletAlias ($cmdletname) { Get-Alias | Where-Object -FilterScript {$_.Definition -like "$cmdletname"} | Format-Table -Property Definition, Name -AutoSize}
Personalice su consola
function Color-Console { $Host.ui.rawui.backgroundcolor = "white" $Host.ui.rawui.foregroundcolor = "black" $hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)" $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)" Clear-Host}Color-Console
Añada un prompt de PowerShell personalizado
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
Para obtener más información sobre el prompt de PowerShell, consulteabout_Prompts.
El parámetro NoProfile
Para iniciar PowerShell sin perfiles, utilice el parámetro NoProfile dePowerShell.exe, el programa que inicia PowerShell.
Para empezar, abra un programa que pueda iniciar PowerShell, como Cmd.exe o el propio PowerShell. También puede utilizar el cuadro de diálogo Ejecutar de Windows.
Tipo:
PowerShell -NoProfile
Para obtener una lista completa de los parámetros de PowerShell.exe, escriba:
PowerShell -?
Política de perfiles y ejecución
La política de ejecución de PowerShell determina, en parte, si puede ejecutar scripts y cargar archivos de configuración, incluidos los perfiles. La política de ejecución restringida es la predeterminada. Impide la ejecución de todos los scripts, incluidos los perfiles. Si utiliza la política «Restricted», el perfil no se ejecuta y su contenido no se aplica.
Un comando Set-ExecutionPolicy
establece y cambia su política de ejecución. Es uno de los pocos comandos que se aplica en todas las sesiones de PowerShell porque el valor se guarda en el registro. No tiene que establecerlo cuando abre la consola, y no tiene que almacenar un comando Set-ExecutionPolicy
en su perfil.
Perfiles y sesiones remotas
Los perfiles de PowerShell no se ejecutan automáticamente en las 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.
Para ejecutar un perfil en una sesión, utilice el comando Invoke-Commandcmdlet.
Por ejemplo, el siguiente comando ejecuta el perfil «Current user, Current Host «desde el equipo local en la sesión en $s
.
Invoke-Command -Session $s -FilePath $PROFILE
El siguiente comando ejecuta el perfil «Current user, Current Host» desde el equipo remoto en la sesión en $s
. Como la variable $PROFILE
no está poblada, el comando utiliza la ruta explícita al perfil. Utilizamos el operador dotsourcing para que el perfil se ejecute en el ámbito actual del ordenador remoto y no en su propio ámbito.
Invoke-Command -Session $s -ScriptBlock { . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Después de ejecutar este comando, los comandos que el perfil añade a la sesión están disponibles en $s
.
Ver también
acerca de_variables_automáticas
acerca de_funciones
acerca de_promptos
acerca de_políticas_de_ejecución
acerca de_firmación
acerca de_remota
acerca de_ámbitos
Set-ExecutionPolicy