Creé el archivo C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1
; sin embargo, PowerShell no lo carga en el inicio. He probado tanto el PowerShell predeterminado como el PowerShell integrado de VS Code. También intenté cambiar el nombre del profile.ps1
archivo a Microsoft.PowerShell_profile.ps1
, pero esto no cambió nada. Relancé las aplicaciones en cuestión después de cada cambio.
Correr Test-Path $profile.CurrentUserAllHosts
devuelve True.
El perfil actualmente solo contiene una línea ( Set-PSReadlineKeyHandler -Key Tab -Function Complete
). Después de iniciar el shell integrado de PowerShell o VS Code, la ejecución Get-PSReadlineKeyHandler | findstr -i Tab
revela que no se ha configurado. Copiar y pegar la línea desde el perfil, ejecutarla y luego ejecutar el Get-...
comando nuevamente revela que está configurada correctamente y que el cambio hace lo que se supone que debe hacer. Relanzar el shell vuelve al valor predeterminado.
¿Hay algún otro paso que deba hacer para que PowerShell ejecute el perfil? (Vengo de un entorno Linux / UNIX y supongo que PowerShell funciona de manera similar, pero, por supuesto, PowerShell está diseñado de manera completamente diferente). Si no hay un paso adicional, ¿por qué PowerShell no carga el perfil en este caso?
Información adicional:
> $profile | Format-List * -force
AllUsersAllHosts : C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
AllUsersCurrentHost : C:\Windows\System32\WindowsPowerShell\v1.0\Microsoft.PowerShell_profile.ps1
CurrentUserAllHosts : C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1
CurrentUserCurrentHost : C:\Users\<myname>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Length : 76
fuente
$host.Name
regresa 'ConsoleHost'$PROFILE | Format-List * -Force
C:\Windows\System32\WindowsPowerShell\v1.0\profile.ps1
?Respuestas:
Solución: cambiar la política de ejecución
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
El mensaje de error como se muestra:
La leccion:
Lo extraño es que vi un mensaje de error (que no era importante) cada vez que lancé PS antes, así que me acostumbré a ignorarlo. La creación del
profile.ps1
archivo hizo que apareciera el error de la política de ejecución, pero también dejó de aparecer el error anterior , así que lo omití porque, sin leer los detalles, parecía el mismo bloque de texto rojo. (El error anterior ahora parece ser imposible de replicar, por alguna razón).Al final, el problema se puede describir como "El usuario se acostumbró a ignorar errores triviales y sin importancia, por lo que el error importante pasó desapercibido".
fuente
get-executionpolicy
que regresóUnrestricted
. Aún así, el shell no está ejecutando mi archivo profile.ps1.