PowerShell 配置文件未加载

PowerShell 配置文件未加载

我创建了文件C:\Users\<myname>\Documents\WindowsPowerShell\profile.ps1;但是,PowerShell 在启动时不会加载它。我测试了默认的 PowerShell 以及 VS Code 的集成 PowerShell。我还尝试将文件重命名profile.ps1Microsoft.PowerShell_profile.ps1,但这没有任何改变。每次更改后,我都会重新启动相关应用程序。

运行Test-Path $profile.CurrentUserAllHosts返回 True。

配置文件当前仅包含一行 ( Set-PSReadlineKeyHandler -Key Tab -Function Complete)。启动 PowerShell 或 VS Code 的集成 shell 后,运行Get-PSReadlineKeyHandler | findstr -i Tab显示尚未设置。从配置文件中复制并粘贴该行,运行它,然后Get-...再次运行该命令显示它已正确设置,并且更改按预期进行。重新启动 shell 将恢复为默认值。

我是否需要执行其他步骤才能让 PowerShell 执行配置文件?(我有 Linux/UNIX 背景,我认为 PowerShell 的工作方式类似,但 PowerShell 的设计当然完全不同)。如果没有额外的步骤,为什么 PowerShell 在这种情况下不加载配置文件?

附加信息:

> $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

答案1

解决方案:改变执行策略

  1. 以管理员身份启动 PowerShell
  2. Set-ExecutionPolicy -ExecutionPolicy Unrestricted

错误信息如图所示:

. : 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

课程:

奇怪的是,以前我每次启动 PS 时都会看到一条错误消息(并不重要),所以我习惯忽略它。创建profile.ps1文件导致执行策略错误出现,但也导致先前的错误停止出现,所以我直接跳过了它,因为如果不看细节的话,它看起来就像是同一块红色文本。(由于某种原因,以前的错误现在似乎无法复制。)

最后,问题可以描述为“用户习惯于忽略琐碎而不重要的错误,因此重要的错误被忽视了。”

相关内容