无法为 CurrentUser 设置 Powershell ExecutionPolicy

无法为 CurrentUser 设置 Powershell ExecutionPolicy

以下是我正在运行的命令的示例:

PS C:\> Get-ExecutionPolicy -List 

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted


PS C:\> Set-ExecutionPolicy Unrestricted -Scope CurrentUser
PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted

我想将 设置CurrentUserUnrestricted,但似乎无法做到。我检查了组策略是否已实施,如这个MSDN文档,但没有找到任何已配置的内容。

关于如何设置它,有什么线索吗?

答案1

就像其他人所说的那样,这似乎是 Windows 10 预览版中的一个错误。我只需提供 -Force 参数就可以让它工作。

本地机器的设置:

Set-ExecutionPolicy RemoteSigned -Force

当前用户的设置:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

答案2

这似乎是 Windows 10 中的一个错误。我必须创建该项并在该项中创建一个用数据HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell调用的字符串值,然后它才能工作。即便如此,我似乎也无法在不修改注册表的情况下更改它。ExecutionPolicyUnrestricted

答案3

我有一个比 OP 更普遍的 powershell 策略问题,但最终需要在这里和其他地方找到的答案才能让我的 Win10 周年纪念版正确更新其策略:

1) 确保此注册表项存在,并将其设置为您想要允许的最低安全级别:HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Name:ExecutionPolicy Type: REG_SZ Data:Unrestricted
2) 确保此注册表项存在,并将其设置为您想要允许的最低安全级别:HKLM:\Software\Policies\Microsoft\Windows\PowerShell
Name:ExecutionPolicy Type: REG_SZ Data: Unrestricted
3) 通过运行更新您的组策略gpedit.msc,并导航到Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell
选择Turn on Script Execution,然后policy setting使用进行编辑Enabled,并在其下方的框中Execution Policy将其设置为Allow All Scripts

完成所有这些操作后,您可以使用 ddcruver 的答案,根据需要强制更新策略。如果您将策略设置为“不受限制”,我建议将所有设置设置为Get-ExecutionPolicy -List更严格的设置,例如RemoteSigned,因为恶意 powershell 脚本是基于内存的 Windows 恶意软件的主要原因之一。

答案4

更改执行策略之前必须以提升模式运行 powershell

相关内容