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




Tabla de contenido