Windows 7上的PowerShell:Set-ExecutionPolicy用于常规用户

我想以普通用户的身份在Windows 7上运行PowerShell脚本。 每当我尝试,我得到以下错误:

File C:\Users\danv\Documents\WindowsPowerShell\profile.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details. At line:1 char:2 + . <<<< 'C:\Users\danv\Documents\WindowsPowerShell\profile.ps1' + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeException 

试图通过Set-ExecutionPolicy Unrestricted解决失败:

 PS C:\Users\danv> Set-ExecutionPolicy Unrestricted Set-ExecutionPolicy : Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied. At line:1 char:20 + Set-ExecutionPolicy <<<< Unrestricted + CategoryInfo : NotSpecified: (:) [Set-ExecutionPolicy], UnauthorizedAccessException + FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.SetExecutionPolicyCommand 

我可以以pipe理员身份运行Set-ExecutionPolicy Unrestricted命令,但是这似乎不会传播给非pipe理员用户。

我如何成功地以非pipe理员身份运行脚本?

如果您(或有帮助的pipe理员)以pipe理员身份运行Set-ExecutionPolicy ,则将为所有用户设置策略。 (我build议“remoteSigned”而不是“无限制”作为安全措施。)

注意:在64位操作系统上,需要分别为32位和64位PowerShell运行Set-ExecutionPolicy

 Set-ExecutionPolicy Unrestricted -Scope CurrentUser 

这将为当前用户(存储在HKEY_CURRENT_USER)而不是本地计算机(HKEY_LOCAL_MACHINE)设置执行策略。 如果您没有对计算机进行pipe理控制,这非常有用。

这应该解决你的问题,你应该尝试运行下面的内容:

 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser