about_Profiles

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0

TEMA

about_Profiles

DESCRIPCIÓN BREVE

Describe cómo crear y usar un perfil de Windows PowerShell.

DESCRIPCIÓN LARGA

Puede crear un perfil de Windows PowerShell para personalizar su entorno y agregar elementos específicos de cada sesión a todas las sesiones de Windows PowerShell que inicie.

Un perfil de Windows PowerShell es un script que se ejecuta al iniciar Windows PowerShell. Puede usar 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. También puede agregar otros elementos específicos de sesión al perfil para que estén disponibles en todas las sesiones sin tener que importarlos ni volver a crearlos.

Windows PowerShell admite varios perfiles para los usuarios y los programas host, pero no crea los perfiles por usted. En este tema se describen los perfiles y cómo crear y mantener 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. También se explica el efecto de la directiva de ejecución de Windows PowerShell en los perfiles.

LOS ARCHIVOS DE PERFIL

Windows PowerShell admite varios archivos de perfil. Además, los programas host de Windows PowerShell pueden admitir sus propios perfiles específicos de host.

Por ejemplo, la consola de Windows PowerShell admite los siguientes archivos del perfil básico. Los perfiles se muestran por orden de prioridad. El primer perfil tiene la prioridad más alta.

        Description                Path
        -----------                ----
        Current User, Current Host $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
        Current User, All Hosts    $Home\[My ]Documents\Profile.ps1
        All Users, Current Host    $PsHome\Microsoft.PowerShell_profile.ps1
        All Users, All Hosts       $PsHome\Profile.ps1

Las rutas de acceso de los perfiles incluyen las siguientes variables:

- La variable $PsHome, que almacena el directorio de instalación de Windows PowerShell.

- La variable $Home, que almacena el directorio principal del usuario actual.

Además, hay otros programas que hospedan Windows PowerShell que pueden admitir sus propios perfiles. Por ejemplo, el Entorno de scripting integrado (ISE) de Windows PowerShell admite los siguientes perfiles específicos de host.

        Description                Path
        -----------                -----
        Current user, Current Host $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
        All users, Current Host    $PsHome\Microsoft.PowerShellISE_profile.ps1

En la ayuda de Windows PowerShell, al mencionar "el perfil de Windows PowerShell", el perfil al que se hace referencia con mayor frecuencia es "Usuario actual, host actual".

LA 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 una ruta de acceso del perfil, muestre el valor de la variable $Profile. También puede usar 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 de la nota de la variable $profile.

Por ejemplo, la variable $Profile tiene los siguientes valores en la consola de Windows PowerShell.

        Name                               Description                
        -----------                        -----------
        $Profile                           Current User,Current Host  
        $Profile.CurrentUserCurrentHost    Current User,Current Host  
        $Profile.CurrentUserAllHosts       Current User,All Hosts     
        $Profile.AllUsersCurrentHost       All Users, Current Host    
        $Profile.AllUsersAllHosts          All Users, All Hosts       
 

Dado que los valores de la variable $Profile cambian para cada usuario y en cada aplicación host, asegúrese de que muestra los valores de las variables de perfil en todas las aplicaciones host de Windows PowerShell que use.

Para ver los valores actuales de la variable $Profile, escriba:

        $profile | get-member -type noteproperty

Puede usar 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 $profile.AllUsersAllHosts

CÓMO CREAR UN PERFIL

Use el siguiente formato de comando para crear un perfil de Windows PowerShell:

        if (!(test-path <profile-name>)) 
           {new-item -type file -path <profile-name> -force}

Por ejemplo, para crear un perfil para el usuario actual en la aplicación host actual de Windows PowerShell, use el siguiente comando:

        if (!(test-path $profile)) 
           {new-item -type file -path $profile -force}

En este comando, la instrucción If le impide sobrescribir un perfil existente. Sustituya el valor del marcador de posición <ruta-acceso-perfil> por la ruta de acceso al archivo de perfil que desee crear.

Nota: Para crear perfiles "Todos los usuarios" en Windows Vista y en versiones posteriores de Windows, inicie Windows PowerShell con la opción "Ejecutar como administrador".

CÓMO MODIFICAR UN PERFIL

Puede abrir cualquier perfil de Windows PowerShell en un editor de texto, como el Bloc de notas.

Para abrir el perfil del usuario actual en la aplicación host actual de Windows PowerShell en el Bloc de notas, escriba:

        notepad $profile

Para abrir otros perfiles, especifique el nombre del perfil. Por ejemplo, para abrir el perfil para todos los usuarios de todas las aplicaciones host, escriba:

        notepad $profile.AllUsersAllHosts

Para aplicar los cambios, guarde el archivo de perfil y reinicie Windows PowerShell.

CÓMO ELEGIR UN PERFIL

Si usa varias aplicaciones host, coloque los elementos que usa en todas las aplicaciones host en el perfil $Profile.CurrentUserAllHosts. Coloque los elementos que sean específicos de una aplicación host (como un comando que establece el color de fondo de una aplicación host) en un perfil que sea específico de dicha aplicación host.

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

-- Almacene los elementos comunes en el perfil $profile.AllUsersAllHosts.

-- Almacene los elementos que sean específicos de una aplicación host en los perfiles $profile.AllUsersCurrentHost que sean específicos de la aplicación host.

-- Almacene los elementos de usuarios concretos en los perfiles específicos de usuario.

No olvide consultar la documentación de la aplicación host para obtener información sobre implementaciones especiales de los perfiles de Windows PowerShell.

CÓMO USAR UN PERFIL

Muchos de los elementos que se crean en Windows PowerShell, así como la mayoría de los comandos que se ejecutan, solo afectan a la sesión actual. Al finalizar la sesión, se eliminan los elementos.

Los comandos y los elementos específicos de la sesión incluyen variables, variables de preferencia, alias, funciones, comandos (excepto Set-ExecutionPolicy) y complementos de Windows PowerShell que se agregan a la sesión.

Para guardar estos elementos y hacer que estén disponibles en todas las sesiones futuras, agréguelos a un perfil de Windows PowerShell.

Otro uso común de los perfiles consiste en guardar las variables, los alias y las funciones que se usan con más frecuencia. Al guardar los elementos en un perfil, se pueden usar en cualquier sesión que corresponda sin tener que volver a crearlos.

CÓMO INICIAR UN PERFIL

Al abrir el archivo de perfil está en blanco, pero puede rellenarlo con las variables, los alias y los comandos que use con más frecuencia.

Aquí se muestran algunas sugerencias para empezar.

-- Agregue los comandos necesarios para abrir el perfil más fácilmente. Esto es útil sobre todo si usa un perfil que no sea el 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. No obstante, puede reemplazar el código de idioma (0409) para abrir otras versiones del archivo .chm.

-- Agregue una función para que se muestren los alias de cualquier cmdlet.

           function Get-CmdletAlias ($cmdletname)
           {
              get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
           }

-- Agregue un comando Add-PsSnapin para agregar todos los complementos de Windows PowerShell que use.

-- 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 más información sobre el símbolo del sistema de Windows PowerShell, consulte about_Prompts.

EL PARÁMETRO NOPROFILE

Para iniciar Windows PowerShell sin perfiles, use el parámetro NoProfile de PowerShell.exe, el programa que inicia Windows PowerShell.

Para comenzar, abra un programa que pueda iniciar Windows PowerShell (por ejemplo, Cmd.exe o el mismo Windows PowerShell). También puede usar el cuadro de diálogo Ejecutar en 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 puede ejecutar scripts y cargar archivos de configuración, incluidos los perfiles. La directiva de ejecución Restringida, que es la predeterminada, evita que se ejecuten todos los scripts, incluidos los perfiles. Si usa la directiva Restringida, el perfil no se ejecuta y no 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, dado que 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 agregan los perfiles 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, use el cmdlet Invoke-Command.

Por ejemplo, el siguiente comando ejecuta el perfil CurrentUserCurrentHost desde el equipo local de la sesión en $s.

        invoke-command -session $s -filepath $profile

El siguiente comando ejecuta el perfil CurrentUserCurrentHost desde el equipo remoto de la sesión en $s. Dado que no se ha rellenado la variable $profile, el comando usa la ruta de acceso explícita al perfil.

        invoke-command -session $s {invoke-command "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Después de ejecutar este comando, los comandos que agrega el perfil a la sesión están disponibles en $s.

VEA TAMBIÉN

about_Automatic_Variables

about_Functions

about_Prompts

about_Execution_Policies

about_Signing

about_Remote

Set-ExecutionPolicy