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