O perfil do PowerShell não é carregado

0

Eu criei o arquivo C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1 ; no entanto, o PowerShell não carrega no lançamento. Eu testei tanto o PowerShell padrão quanto o PowerShell integrado do VS Code. Eu também tentei renomear o arquivo profile.ps1 para Microsoft.PowerShell_profile.ps1 , mas isso não mudou nada. Eu relançou os aplicativos em questão após cada alteração.

A execução de Test-Path $profile.CurrentUserAllHosts retorna True.

O perfil atualmente contém apenas uma linha ( Set-PSReadlineKeyHandler -Key Tab -Function Complete ). Após o lançamento do shell integrado do PowerShell ou do VS Code, a execução de Get-PSReadlineKeyHandler | findstr -i Tab revela que ele não foi definido. Copiar e colar a linha do perfil, executá-la e, em seguida, executar o comando Get-... novamente revela que ela está configurada corretamente e a alteração faz o que deve. O relançamento do shell é revertido para o padrão.

Há alguma outra etapa que preciso fazer para que o PowerShell execute o perfil? (Sou de um ambiente Linux / UNIX e presumo que o PowerShell funcione de forma semelhante, mas é claro que o PowerShell foi projetado de forma completamente diferente). Se não houver nenhuma etapa extra, por que o PowerShell não carrega o perfil nesse caso?

Informações adicionais:

> $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
    
por Whimsical Seaplane 15.11.2017 / 21:49

1 resposta

1

Solução: altere a política de execução

  1. Inicie o PowerShell como administrador
  2. Set-ExecutionPolicy -ExecutionPolicy Unrestricted

A mensagem de erro, conforme mostrado:

. : File C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:3
+ . 'C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

A lição:

O mais estranho é que eu vi uma mensagem de erro (que não era importante) toda vez que eu lançava o PS antes, então eu me acostumei a ignorá-lo. Criando o arquivo profile.ps1 fez com que o erro da política de execução aparecesse, mas também fez com que o erro anterior pare aparecendo, então eu ignorei, porque, sem ler os detalhes , parecia apenas o mesmo bloco de texto vermelho. (O erro anterior agora parece ser impossível de replicar, por algum motivo.)

No final, o problema pode ser descrito como "O usuário se acostumou a ignorar erros triviais e sem importância, então o erro importante passou despercebido."

    
por 15.11.2017 / 22:39

Tags