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

时间:2011-01-10 13:44:05

标签: windows-7 powershell

我想以普通用户身份在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

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

如何以非管理员身份成功运行脚本?

8 个答案:

答案 0 :(得分:106)

Set-ExecutionPolicy Unrestricted -Scope CurrentUser

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

答案 1 :(得分:61)

如果您(或有帮助的管理员)以管理员身份运行Set-ExecutionPolicy,则会为所有用户设置该策略。 (我建议使用“remoteSigned”而不是“unrestricted”作为安全措施。)

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

答案 2 :(得分:0)

这可以解决您的问题,您应该尝试运行以下内容:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 

答案 3 :(得分:0)

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

通过 PowerShell 运行此命令。它对我有用,希望它也对你有用:)

答案 4 :(得分:0)

您可以使用此 PowerShell 命令:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

答案 5 :(得分:0)

RemoteSigned 是比 Unrestricted 更安全的执行策略。

set-executionpolicy remotesigned

答案 6 :(得分:0)

Select ***Start > All Programs > Windows PowerShell version > Windows PowerShell***.
Type ```Set-ExecutionPolicy RemoteSigned``` to set the policy to ```RemoteSigned```.
Type ```Set-ExecutionPolicy Unrestricted``` to set the policy to ```Unrestricted```.
Type ```Get-ExecutionPolicy``` to verify the current settings for the execution policy.
Type ```Exit```.

答案 7 :(得分:0)

如果您是您电脑的管理员,您可以在您的电脑中输入以下命令

 Set-ExecutionPolicy Unrestricted

powershell 窗口。您可能需要以管理员身份运行 shell。

一旦你这样做了,它会要求你确认, 如果要为所有全局用户设置不受限制的设置,请输入“A” 如果您只想为当前用户(管理员)设置不受限制的设置,请输入“Y”

请记住:- 您可以随时使用以下命令恢复所做的更改:

Set-ExecutionPolicy Restricted