问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

如何在Windows PowerShell中启用和使用脚本执行策略

创作时间:
作者:
@小白创作中心

如何在Windows PowerShell中启用和使用脚本执行策略

引用
1
来源
1.
https://m.php.cn/faq/1037646.html

默认情况下,PowerShell允许您通过其控制台运行命令(cmdlet)。要执行脚本,您可以使用脚本代码创建一个记事本文件,使用.ps1文件扩展名保存它,然后通过PowerShell控制台执行它。也可以直接将脚本粘贴到控制台执行。

但是,如果这是您第一次通过PowerShell执行脚本,您会遇到“正在运行的脚本已被禁用”错误。默认情况下,禁用PowerShell上的脚本执行作为一项安全措施,以防止恶意脚本在您的系统上运行。在这里,我们向您展示了在Windows PowerShell上启用脚本执行策略的两种方法。

如何检查您现有的执行策略

完成后,打开PowerShell,键入get-executionpolicy执行政策,并按下Enter进入。当前用户的执行策略现在设置为RemoteSigned远程签名。

如果需要禁用执行策略,请切换PowerShell开关并将其设置为Off

如何使用PowerShell允许脚本在PowerShell中运行

您可以使用PowerShell cmdlet将执行策略设置为RemoteSigned。命令行界面使您无需使用“设置”应用程序即可轻松快速更改执行策略。

此外,设置应用程序只能启用或禁用RemoteSigned执行策略。而PowerShell还允许您设置其他策略和范围。

要使用PowerShell更改执行策略:

  1. 以管理员身份打开PowerShell。
  2. 在PowerShell窗口中,键入以下命令并按Enter进入:
    Set-ExecutionPolicy RemoteSigned
    
  3. 如果出现提示,请按A确认动作。这将设置RemoteSigned远程签名所有用户的执行策略。如果你想为Current User当前用户仅使用Scope参数后跟用户名。
  4. 例如,设置RemoteSigned远程签名的执行政策CurrentUser当前用户,使用以下命令:
    Set-ExecutionPolicy RemoteSgined -Scope CurrentUser
    
  5. 代替CurrentUser根据您的要求,在上述命令中与其他用户(范围)一起使用。

如何使用PowerShell删除脚本执行策略

如果要禁用脚本执行,请将执行策略设置为Undefined不明确的使用e Set_ExecutionPolicy命令。这是默认状态,可防止PowerShell执行任何脚本。

要使用PowerShell禁用脚本执行:

  1. 使用提升的权限打开PowerShell。
  2. 接下来,键入以下命令并按enter键以禁用所有用户的脚本执行:
    Set-ExecutionPolicy undefined
    
  3. 上面的命令将为所有用户设置执行策略默认值(未定义)。如果要为特定范围禁用脚本执行,请使用以下命令:
    Set-ExecutionPolicy undefined -Scope CurrentUser
    
  4. 上面的命令将禁用脚本执行CurrentUser当前用户。

了解执行策略和范围

简单来说,PowerShell的执行策略就是控制PowerShell如何执行配置文件和脚本的策略。预期目的是防止用户意外运行恶意脚本。七个PowerShell执行策略是Default, Restricted, RemoteSigned, AllSigned, Unrestricted, Bypass, and Undefined默认、受限、RemoteSigned、AllSigned、不受限、旁路和未定义。

下表简要说明了所有PowerShell执行策略:

执行政策
执法
Default
将默认执行策略设置为Restricted on Windows Client和RemoteSigned on Windows Server。
AllSigned
允许执行发布者签名的脚本。
Bypass
不受限制地执行大型应用程序的脚本。
RemoteSigned
允许本地编写的脚本执行。从Internet下载的脚本需要数字签名。
Restricted
不允许脚本执行,但只允许执行单个PowerShell命令。
Undefined
将执行策略设置为Restricted for Windows clients和RemoteSigned for Windows Server。
Unrestricted
允许执行未签名的脚本,并对从Internet下载的脚本发出警告。

执行策略范围

您可以在PowerShell中为特定范围设置执行策略。五个执行策略范围是MachinePolicy, UserPolicy, Process, CurrentUser,和本地机器。

下表简要说明了所有执行策略范围:

执行策略范围
执法
UserPolicy
由当前用户的组策略配置。
MachinePolicy
由所有用户的组策略配置。
CurrentUser
为当前用户配置并存储在HKEY_CURRENT_MACHINE注册表子项中。
LocalMachine
为所有用户配置并存储在HKEY_CURRENT_MACHINE注册表子项中。
Process
影响当前的PowerShell会话并在会话关闭时自动删除。

在Windows上添加或删除PowerShell脚本执行策略

Windows客户端默认禁用PowerShell上的脚本执行,Windows服务器设置为RemoteSigned。但是,高级用户可以更改执行策略以运行本地、已签名和未签名的PowerShell脚本。

或者,您可以通过将脚本粘贴到PowerShell控制台或将您的脚本回显到PowerShell标准输入来绕过PowerShell执行策略。如果您想在不更改执行策略的情况下执行脚本,这将很有用。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号