Windows下PowerShell默认的权限级别是Restricted,不容许执行PS脚本(即.ps1文件)。若是在Restricted权限级别下运行,会获得错误信息:shell
.\XXXX.ps1 : File XXXX.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:1 + .\XXXX.ps1 params[] ... + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess |
要解决这类问题,一般的作法是,用管理员权限启动PS命令行,将执行权限修改成RemoteSigned或者Unrestricted:this
Set-ExecutionPolicy RemoteSigned
到这里,通常就能够解决大多数状况下的问题。spa
可是,有的时候会发现有的PS脚本仍是会抛出上面的错误。若是你的系统是64位的Windows,那么有可能你执行脚本是调用的powershell.exe并非你改过权限的那一个。从下面两个位置下运行powershell并查看权限设置:命令行
Get-ExecutionPolicy
若是有Restricted将其改成RemoteSigned或者Unrestricted。rest