无法为CurrentUser设置Powershell ExecutionPolicy


11

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

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文档中概述的组策略,但未找到任何已配置的内容。

关于我该如何设置的任何线索?


我无法重现此内容。它可以在我的机器上正常工作。您有任何错误吗?
briantist

@briantist这是Windows 10的错误。
CamronBute

Answers:


11

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

设置本地机器:

Set-ExecutionPolicy RemoteSigned-强制

当前用户的设置:

Set-ExecutionPolicy RemoteSigned-范围CurrentUser -Force


4

在Windows 10中,这似乎是一个错误。我必须先创建键,HKEY_CURRENT_USER\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell然后在该键中创建一个字符串值,ExecutionPolicy并使用数据Unrestricted进行调用,然后才能起作用。即使那样,如果不修改注册表,我似乎也无法更改它。


唯一的帮助。你知道为什么Set-ExecutionPolicy不起作用吗?
nZeus

2

与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的答案。如果将策略设置为Unrestricted,我建议将所有填充的设置都设置Get-ExecutionPolicy -List为更严格的限制,例如RemoteSigned,因为恶意的Powershell脚本是基于内存的Windows恶意软件的主要原因之一。


1

我没有在Windows 10的安装中看到该错误。我只是使用VMWare Workstation 11进行了安装并构建了一个VM。我运行以下命令之前没有做任何更改:

在此处输入图片说明

如果您想知道Windows 10的版本,我可以: 10.0.10074


3
我看到了OP描述的意外行为。Windows 10 Enterprise内部版本10130。– jscott 2015
6

如果是这种情况,那么您应该通过Connect提交错误或查看是否已经存在。


0

我发现注册表项位于

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 

设置为RemoteSigned。将值设置Unrestricted为对我有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.