运行powershell脚本出错

错误信息

PS C:\Users\admin\Desktop\Virtualenv\py3> .\env1\Scripts\activate
.\env1\Scripts\activate : 无法加载文件 C:\Users\admin\Desktop\Virtualenv\py3\env1\Scripts\activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about
_Execution_Policies。
所在位置 行:1 字符: 1

  • .\env1\Scripts\activate
  •   + CategoryInfo          : SecurityError: (:) [],PSSecurityException
      + FullyQualifiedErrorId : UnauthorizedAccess

解决方法

使用管理员权限打开 powershell, 运行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 命令即可.

具体参见 https:/go.microsoft.com/fwlink/?LinkID=135170

  1. Get-获取有效的执行策略:

    1
    Get-ExecutionPolicy
  2. 获取影响当前会话的所有执行策略,并按优先顺序显示它们:

    1
    Get-ExecutionPolicy -List
  3. 获取 CurrentUser 作用域的执行策略:

    1
    Get-ExecutionPolicy -Scope CurrentUser
  4. 更改执行策略:

    1
    2
    3
    4
    Set-ExecutionPolicy -ExecutionPolicy <PolicyName>
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
    Set-ExecutionPolicy -ExecutionPolicy <PolicyName> -Scope <scope>
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
  5. 删除执行策略

    1
    2
    Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine
    Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
  6. 单独设置会话

    1
    pwsh.exe -ExecutionPolicy AllSigned

    你设置的执行策略未存储在注册表中。 相反,它存储在 $env:PSExecutionPolicyPreference 环境变量中。 关闭设置了策略的会话时,将删除该变量。 不能通过编辑变量值来更改策略。

    在会话期间,为会话设置的执行策略优先于在注册表中为本地计算机或当前用户设置的执行策略。 但是,它不会优先于通过使用组策略设置的执行策略。