Windows 10下Elixir 1.5.2 Mix脚本免重复改执行策略方案咨询
解决Windows 10下Elixir mix.ps1需每次修改执行策略的问题
我之前在Windows上折腾Elixir的时候也碰到过这个烦人的数字签名问题,不用每次手动改执行策略的方法有几个,按安全程度从高到低给你列出来:
1. 解除Elixir脚本的安全区块标记
Windows会给从互联网下载的文件添加一个安全区块标记,PowerShell默认会阻止这类未签名脚本运行。你可以一次性解除Elixir bin目录下所有ps1脚本的标记:
- 打开管理员权限的PowerShell
- 执行命令:
Unblock-File -Path "C:\Program Files\Elixir\bin\*.ps1"
之后把你的执行策略设置为RemoteSigned(比Bypass更安全,允许本地脚本运行,仅远程脚本需要签名):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
这样以后直接运行mix命令就不会报错了,这个方法是最安全的,只针对Elixir的脚本放行。
2. 创建PowerShell自动配置文件
如果上面的方法不生效(比如你的Elixir脚本还是被判定为需要签名),可以让PowerShell每次启动时自动帮你设置进程级的执行策略:
- 先检查你的PowerShell配置文件是否存在:
Test-Path $PROFILE - 如果返回
False,创建配置文件:New-Item -Path $PROFILE -ItemType File -Force - 打开配置文件编辑(会用记事本打开):
notepad $PROFILE - 在文件里添加这一行,保存后关闭:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
下次打开PowerShell的时候,这个命令会自动执行,你直接运行mix就行。这个方法最方便,但进程级的Bypass会临时关闭当前PowerShell窗口的脚本签名验证,适合自己的开发环境用。
3. 全局设置执行策略(不推荐)
虽然可以把全局执行策略改成RemoteSigned甚至Unrestricted,但这样会降低整个系统的安全性,不建议这么做,除非你完全信任所有运行的脚本。
内容的提问来源于stack exchange,提问作者Jiangyi Lin
相关产品推荐
相关产品推荐

