Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Descripción breve
Describe cómo crear y usar un perfil de PowerShell.
Descripción larga
Puede crear un perfil de PowerShell para personalizar el entorno y para agregar 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 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 PowerShell. También puede agregar 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 los usuarios y los programas host. Sin embargo, no crea los perfiles. En este tema se describen los perfiles y se describe cómo crear y mantener perfiles en el equipo.
Explica cómo usar el parámetro NOPROFILE de la consola de PowerShell (PowerShell. exe) para iniciar PowerShell sin ningún perfil. Además, se explica el efecto de la Directiva de ejecución de PowerShell en los perfiles.
Archivos de perfil
PowerShell admite varios archivos de perfil. Además, los programas host de PowerShell pueden admitir sus propios perfiles específicos del host.
Por ejemplo, la consola de PowerShell admite los siguientes archivos de perfil básicos. Los perfiles se muestran en orden de prioridad. El primer perfil tiene la prioridad más alta.
| Descripción | Path |
|---|---|
| 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 \ [My] Documents de \ WindowsPowerShell \ Profile. ps1 |
| Usuario actual, host actual | $Home \ [mis] documentos de \ WindowsPowerShell\ Microsoft. PowerShell_profile. ps1 |
Las rutas de acceso de perfil incluyen las siguientes variables:
- La
$PSHOMEvariable, que almacena el directorio de instalación de PowerShell - La
$Homevariable, que almacena el directorio principal del usuario actual.
Además, otros programas que hospedan PowerShell pueden admitir sus propios perfiles. Por ejemplo, el entorno de scripting integrado (ISE) de PowerShell admite los siguientes perfiles específicos del host.
| Descripción | Path |
|---|---|
| Todos los usuarios, host actual | $PSHOME \ Microsoft. PowerShellISE_profile. ps1 |
| Usuario actual, host actual | $Home \ [mis] documentos de \ WindowsPowerShell\ Microsoft. PowerShellISE_profile. ps1 |
En la ayuda de PowerShell, el perfil "CurrentUser, host actual" es el perfil al que se suele hacer referencia como "su perfil de PowerShell".
La variable $PROFILE
La $PROFILE variable automática almacena las rutas de acceso a los perfiles de PowerShell que están disponibles en la sesión actual.
Para ver una ruta de acceso de perfil, muestre el valor de la $PROFILE variable. También puede usar la $PROFILE variable en un comando para representar una ruta de acceso.
La $PROFILE variable almacena la ruta de acceso al perfil "usuario actual, host actual". Los otros perfiles se guardan en las propiedades de nota de la $PROFILE variable.
Por ejemplo, la $PROFILE variable tiene los siguientes valores en la consola de Windows PowerShell.
| 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 |
Dado que los valores de la $PROFILE variable cambian para cada usuario y en cada aplicación host, asegúrese de que muestra los valores de las variables de perfil en cada aplicación host de PowerShell que use.
Para ver los valores actuales de la $PROFILE variable, escriba:
$PROFILE | Get-Member -Type NoteProperty
Puede usar la $PROFILE variable 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 de PowerShell, use 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 host actual de PowerShell, use el siguiente comando:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
En este comando, la instrucción If impide sobrescribir un perfil existente. Reemplace el valor del < marcador de posición Profile-path > por la ruta de acceso al archivo de perfil que desea crear.
Nota
Para crear perfiles de "todos los usuarios" en Windows Vista y versiones posteriores de Windows, 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ón host de PowerShell actual 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, a continuación, reinicie PowerShell.
Cómo elegir un perfil
Si usa varias aplicaciones host, coloque en el perfil los elementos que use en todas las aplicaciones host $PROFILE.CurrentUserAllHosts . Coloque los elementos que son 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 que está personalizando PowerShell para muchos usuarios, siga estas instrucciones:
- Almacenar los elementos comunes en el
$PROFILE.AllUsersAllHostsPerfil - Almacenar elementos que son específicos de una aplicación host en
$PROFILE.AllUsersCurrentHostperfiles específicos de la aplicación host - Almacenar elementos para determinados usuarios en los perfiles específicos del usuario
Asegúrese de consultar la documentación de la aplicación host para cualquier implementación especial de perfiles de PowerShell.
Cómo usar un perfil
Muchos de los elementos que se crean en PowerShell y la mayoría de los comandos que se ejecutan afectan únicamente a la sesión actual. Cuando finalice la sesión, se eliminarán los elementos.
Los elementos y comandos específicos de la sesión incluyen variables, variables de preferencia, alias, funciones, comandos (excepto para Set-ExecutionPolicy) y módulos de 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 PowerShell.
Otro uso común de los perfiles es guardar las funciones, los alias y las variables que se usan con frecuencia. Al guardar los elementos de un perfil, puede usarlos en cualquier sesión aplicable sin volver a crearlos.
Cómo iniciar un perfil
Al abrir el archivo de perfil, está en blanco. Sin embargo, se puede rellenar con las variables, los alias y los comandos que se usan con frecuencia.
Estas son algunas sugerencias para comenzar.
Agregar comandos que facilitan la apertura del perfil
Esto es especialmente útil si usa un perfil distinto del perfil "usuario actual, host actual". Por ejemplo, agregue el siguiente comando:
function Pro {notepad $PROFILE.CurrentUserAllHosts}
Agregar una función que Enumere los alias de cualquier cmdlet
function Get-CmdletAlias ($cmdletname) {
Get-Alias |
Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
Format-Table -Property Definition, Name -AutoSize
}
Personalización de la 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
Agregar un símbolo del sistema de PowerShell personalizado
function Prompt
{
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}
Para obtener más información sobre el símbolo del sistema de PowerShell, consulte about_Prompts.
Parámetro NOPROFILE
Para iniciar PowerShell sin perfiles, use el parámetro NOPROFILE de PowerShell. exe, el programa que inicia PowerShell.
Para empezar, abra un programa que puede iniciar PowerShell, como cmd. exe o 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 -?
Directiva de perfiles y ejecución
La Directiva de ejecución de PowerShell determina, en parte, si puede ejecutar scripts y cargar archivos de configuración, incluidos los perfiles. La Directiva de ejecución restringida es el valor predeterminado. Impide que se ejecuten todos los scripts, incluidos los perfiles. Si usa la Directiva "restricted", el perfil no se ejecuta y no se aplica su contenido.
Un Set-ExecutionPolicy comando establece y cambia la Directiva 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 es necesario establecerla al abrir la consola y no es necesario almacenar un Set-ExecutionPolicy comando en el perfil.
Perfiles y sesiones remotas
Los perfiles de 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 $PROFILE variable automática 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 "usuario actual, host actual" desde el equipo local en la sesión de $s .
Invoke-Command -Session $s -FilePath $PROFILE
El siguiente comando ejecuta el perfil "usuario actual, host actual" desde el equipo remoto en la sesión de $s . Dado $PROFILE que la variable no se rellena, el comando usa la ruta de acceso explícita al perfil. Usamos el operador de origen de puntos para que el perfil se ejecute en el ámbito actual en el equipo 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 agrega a la sesión están disponibles en $s .