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