TEMA
about_Profiles
DESCRIPCIÓN BREVE
Describe cómo crear y utilizar un perfil de Windows PowerShell.
DESCRIPCIÓN DETALLADA
Puede crear un perfil de Windows PowerShell para personalizar su
entorno y agregar elementos específicos de la sesión a cada
sesión de Windows PowerShell que inicie.
Un perfil de Windows PowerShell es un script que se ejecuta
cuando se inicia Windows PowerShell. Puede utilizar el perfil
como un script de inicio de sesión para personalizar el entorno.
Puede agregar comandos, alias, funciones, variables,
complementos, módulos y unidades de Windows PowerShell. Asimismo,
puede agregar al perfil otros elementos específicos de la sesión
de modo que estén disponibles en cada sesión sin tener que
importarlos ni volver a crearlos.
Windows PowerShell admite varios perfiles para los usuarios y
programas host.Sin embargo, no crea los perfiles. En este tema
se describen los perfiles y se explica cómo crear y mantener
los perfiles en el equipo.
Se explica cómo usar el parámetro NoProfile de la consola de
Windows PowerShell (PowerShell.exe) para iniciar Windows
PowerShell sin ningún perfil.Además, se explica el efecto
de la directiva de ejecución de Windows PowerShell en los perfiles.
ARCHIVOS DE PERFIL
Windows PowerShell admite varios archivos de perfil. Asimismo,
los programas host de Windows PowerShell admiten sus propios
perfiles específicos del host.
Por ejemplo, la consola de Windows PowerShell admite los
siguientes archivos de perfil básicos. Los perfiles se muestran
en orden de precedencia. El primer perfil tiene la mayor precedencia.
Descripción Ruta de acceso
----------- ----
Usuario actual, Host actual $Home\[Mis ]Documentos\WindowsPowerShell\Profile.ps1
Usuario actual, Todos los hosts $Home\[Mis ]Documentos\Profile.ps1
Todos los usuarios, Host actual $PsHome\Microsoft.PowerShell_profile.ps1
Todos los usuarios, Todos los hosts $PsHome\Profile.ps1
Las rutas de acceso de los perfiles incluyen las variables siguientes:
- La variable $PsHome, que almacena el directorio de
instalación de Windows PowerShell.
- La variable $Home, que almacena el directorio particular
del usuario actual.
Además, otros programas que hospedan Windows PowerShell admiten
sus propios perfiles. Por ejemplo, el programa Entorno de
scripting integrado (ISE) de Windows PowerShell admite los
siguientes perfiles específicos del host.
Descripción Ruta de acceso
----------- -----
Usuario actual, Host actual $Home\[Mis ]Documentos\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
Todos los usuarios, Host actual $PsHome\Microsoft.PowerShellISE_profile.ps1
En la Ayuda de Windows PowerShell, el perfil "Usuario actual,
Host actual" suele denominarse "su perfil de Windows PowerShell".
VARIABLE $PROFILE
La variable automática $Profile almacena las rutas de acceso a
los perfiles de Windows PowerShell que están disponibles en la
sesión actual.
Para ver la ruta de acceso a un perfil, debe mostrar el valor de
la variable $Profile. Asimismo, puede utilizar la variable
$Profile en un comando para representar una ruta de acceso.
La variable $Profile almacena la ruta de acceso al perfil
"Usuario actual, Host actual". Los otros perfiles se guardan en
las propiedades adicionales de la variable $Profile.
Por ejemplo, la variable $Profile tiene los valores siguientes en
la consola de Windows PowerShell.
Nombre Descripción
----------- -----------
$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
Dado que los valores de la variable $Profile cambian según el
usuario y la aplicación host, asegúrese de mostrar los valores de
las variables de perfil en cada aplicación host de Windows
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 comando siguiente abre el perfil "Usuario actual,
Host actual" en Bloc de notas:
notepad $profile
El comando siguiente determina si se ha creado un perfil "Todos
los usuarios, Todos los hosts" en el equipo local:
test-path $profile.AllUsersAllHosts
CÓMO CREAR UN PERFIL
Para crear un perfil de Windows PowerShell, utilice el siguiente
formato de comando:
if (!(test-path <nombre del perfil>))
{new-item -type file -path <nombre del perfil> -force}
Por ejemplo, si desea crear un perfil para el usuario actual en
la aplicación host actual de Windows PowerShell, utilice el
comando siguiente:
if (!(test-path $profile))
{new-item -type file -path $profile -force}
En este comando, la instrucción If evita que se sobrescriba un
marcador de posición existente con la ruta de acceso. Reemplace
el valor del marcador de posición <ruta de acceso al perfil> con
la ruta de acceso al archivo de perfil que desee crear.
Nota: para crear perfiles "Todos los usuarios" en Windows Vista y
versiones posteriores de Windows, inicie Windows PowerShell con
la opción "Ejecutar como administrador".
CÓMO EDITAR UN PERFIL
Puede abrir cualquier perfil de Windows PowerShell en un editor
de texto, como Bloc de notas.
Para abrir en Bloc de notas el perfil del usuario actual en la
aplicación host actual de Windows PowerShell, escriba:
notepad $profile
Para abrir otros perfiles, especifique el nombre del perfil. Por
ejemplo, para abrir el perfil de todos los usuarios de todas las
aplicaciones host, escriba:
notepad $profile.AllUsersAllHosts
Para que se apliquen los cambios, guarde el archivo de perfil y,
a continuación, reinicie Windows PowerShell.
CÓMO ELEGIR UN PERFIL
Si utiliza varias aplicaciones host, coloque en su perfil
$Profile.CurrentUserAllHosts los elementos que utilice en todas las
aplicaciones host.Coloque los elementos específicos de una aplicación host,
como un comando que establece el color de fondo de una aplicación host,
en un perfil específico de esa aplicación host.
Si es un administrador encargado de personalizar Windows
PowerShell para muchos usuarios, siga estas instrucciones:
-- Almacene los elementos comunes en el perfil $profile.AllUse
rsAllHosts.
-- Almacene los elementos específicos de una aplicación host
en los perfiles $profile.AllUsersCurrentHost específicos
de la aplicación host.
-- Almacene los elementos de usuarios concretos en los
perfiles específicos del usuario.
Asegúrese de consultar la documentación de la aplicación host
para comprobar si debe realizarse alguna implementación especial
de los perfiles de Windows PowerShell.
CÓMO UTILIZAR UN PERFIL
Muchos de los elementos que se crean en Windows PowerShell y la
mayoría de los comandos que se ejecutan afectan únicamente a la
sesión actual. Al finalizar la sesión, se eliminan esos elementos.
Entre los comandos y elementos específicos de la sesión se
encuentran las variables, las variables de preferencia, los
alias, las funciones, los comandos (excepto Set-ExecutionPolicy)
y los complementos de Windows PowerShell que se agregan a la sesión.
Para guardar estos elementos de modo que estén disponibles para
todas las sesiones futuras, agréguelos a un perfil de Windows
PowerShell.
Los perfiles también se suelen utilizar para guardar las
funciones, los alias y las variables de uso frecuente. Al guardar
los elementos en un perfil, puede utilizarlos en cualquier sesión
aplicable sin tener que volver a crearlos.
CÓMO INICIAR UN PERFIL
Cuando se abre un archivo de perfil, está en blanco. Sin embargo,
puede agregar las variables, los alias y los comandos que utilice
frecuentemente.
A continuación figuran algunas sugerencias.
-- Agregue comandos que permitan abrir fácilmente su perfil. Esto
resulta especialmente útil si usa un perfil distinto del
perfil "Usuario actual, Host actual". Por ejemplo, agregue el
siguiente comando:
function pro {notepad $profile.CurrentUserAllHosts}
-- Agregue una función que abra la Ayuda de Windows PowerShell en
un archivo de Ayuda HTML compilado (.chm).
function Get-CHM
{
(invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm)
}
Esta función abre la versión en inglés del archivo .chm. Sin
embargo, puede reemplazar el código de idioma (0409) para
abrir otras versiones del archivo .chm.
-- Agregue una función que muestre los alias de los cmdlets.
function Get-CmdletAlias ($cmdletname)
{
get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
}
-- Agregue un comando Add-PsSnapin para agregar cualquier
complemento de Windows PowerShell que utilice.
-- Personalice la consola.
function Color-Console
{
$host.ui.rawui.backgroundcolor = "white"
$host.ui.rawui.foregroundcolor = "black"
$hosttime = (dir $pshome\powershell.exe).creationtime
$Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($hosttime)"
clear-host
}
Color-console
-- Agregue un símbolo del sistema personalizado de Windows
PowerShell que incluya el nombre del equipo y la ruta de
acceso actual.
function prompt
{
$env:computername + "\" + (get-location) + "> "
}
Para obtener más información sobre el símbolo del sistema de
Windows PowerShell, vea about_Prompts.
PARÁMETRO NOPROFILE
Para iniciar Windows PowerShell sin perfiles, use el parámetro
NoProfile de PowerShell.exe, que es el programa que inicia
Windows PowerShell.
Para comenzar, abra un programa que pueda iniciar Windows
PowerShell, como Cmd.exe o la propia aplicación Windows
PowerShell. También puede utilizar el cuadro de diálogo Ejecutar
de Windows.
Escriba:
powershell -noprofile
Para obtener una lista completa de los parámetros de
PowerShell.exe, escriba:
powershell -?
PERFILES Y DIRECTIVA DE EJECUCIÓN
La directiva de ejecución de Windows PowerShell determina, en
parte, si se pueden ejecutar scripts y cargar archivos de
configuración, incluidos los perfiles. La directiva de ejecución
predeterminada es Restricted. Evita la ejecución de todos los
scripts, incluidos los perfiles. Si utiliza la directiva
Restricted, no se ejecuta el perfil ni se aplica su contenido.
Un comando Set-ExecutionPolicy establece y cambia la directiva de
ejecución. Es uno de los pocos comandos que se aplica en todas
las sesiones de Windows PowerShell porque el valor se guarda en
el Registro. No es necesario establecerlo al abrir la consola ni
es preciso almacenar un comando Set-ExecutionPolicy en su perfil.
PERFILES Y SESIONES REMOTAS
Los perfiles de Windows PowerShell no se ejecutan automáticamente
en las sesiones remotas, por lo que los comandos que los perfiles
agregan no están presentes en las sesiones remotas.
Además, la variable automática $profile no se rellena en las
sesiones remotas.
Para ejecutar un perfil en una sesión, utilice el cmdlet
Invoke-Command.
Por ejemplo, el comando siguiente ejecuta el perfil
CurrentUserCurrentHost del equipo local en la sesión en $s.
invoke-command -session $s -filepath $profile
El comando siguiente ejecuta el perfil CurrentUserCurrentHost del
equipo remoto en la sesión en $s. Dado que no se rellena la
variable $profile, el comando utiliza la ruta de acceso explícita
al perfil.
invoke-command -session $s {invoke-expression "$home\Documentos\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Después de ejecutarse este comando, los comandos que el perfil
agrega a la sesión estarán disponibles en $s.
VEA TAMBIÉN
about_Automatic_Variables
about_Functions
about_Prompts
about_Execution_Policies
about_Signing
about_Remote
Set-ExecutionPolicy