问题
Windows下的powershell环境:
:无法加载文件 D:\Users\y\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请
参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'D:\Users\y\Documents\WindowsPowerShell\profile.ps1'
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
解释
这个是 PowerShell 执行策略 把你的脚本(profile.ps1)拦住了,不让运行。
Windows 默认策略是 Restricted,所以 .ps1 脚本无法执行。
解决办法
1. 临时允许当前会话执行脚本(推荐)
在 当前 PowerShell 窗口 执行:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
然后再运行你的命令,这样 只对当前会话有效,关掉窗口就恢复安全策略。
2. 允许当前用户长期运行脚本
如果你想以后都能运行 .ps1(比如启动编译脚本),执行:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
含义:
RemoteSigned:本地脚本随便跑,从网上下载的必须有签名才行。
作用范围只限 当前用户,不会影响系统安全。
3. 查看当前策略
Get-ExecutionPolicy -List
可以看到
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Bypass
CurrentUser RemoteSigned
LocalMachine Restricted