终端运行脚本报: 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fw link/?LinkID=135170 中的 about_Execution_

前言:
PowerShell 执行策略限制:原因与解决方法
在使用终端或者开发工具或者 PowerShell 运行脚本时,你可能会遇到类似这样的错误信息:
因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
这表明系统默认的执行策略(Execution Policy)阻止了脚本的运行,以防止潜在的安全风险。然而,这也可能阻碍了你正常运行合法脚本的需求。本文将详细介绍 PowerShell 执行策略的背景、限制的原因以及解决方法。

终端运行脚本报: 因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fw link/?LinkID=135170 中的 about_Execution_

1. 什么是 PowerShell 执行策略?

PowerShell 执行策略是一种安全机制,用于控制哪些脚本可以在系统上运行。默认情况下,Windows 系统会设置较为严格的执行策略,以防止恶意脚本的执行。执行策略有以下几种常见级别:
Restricted(限制):不允许运行任何脚本。
AllSigned(全部签名):仅允许运行经过数字签名的脚本。
RemoteSigned(远程签名):允许运行本地脚本,但远程下载的脚本需要数字签名。
Unrestricted(无限制):允许运行所有脚本,但会警告未签名的脚本。

2. 为什么会出现执行策略限制?

PowerShell 执行策略限制的主要目的是保护系统安全。脚本文件(.ps1)可能包含恶意代码,如果随意运行,可能会对系统造成损害。因此,PowerShell 默认采用较为严格的安全策略,以防止未经授权的脚本执行。

3. 如何解决执行策略限制问题?

根据你的需求和使用场景,有以下几种解决方法:

方法 1:临时允许运行脚本

以管理员方式运行PowerShell,执行如下命令

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

这个命令可以帮助我们将执行策略更改到RemoteSigned
这一项的功能有:

服务器计算机的默认Windows策略。
脚本可以运行。
需要受信任的发布者对从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)进行数字签名。
对于在本地计算机上编写且未从 Internet 下载的脚本,不需要数字签名。
如果脚本未受阻止(例如使用 cmdlet),则运行从 Internet Unblock-File 下载且未签名的脚本。
从 Internet 来源(而不是 Internet)运行未签名脚本的风险,以及可能是恶意的已签名脚本的风险。
当然,如果你想更改回去,只需执行

Set-ExecutionPolicy -ExecutionPolicy Restricted

方法 2:更改系统执行策略 (完全解除限制(不推荐))

如果你需要长期运行脚本,可以更改系统的执行策略。以下是几种常见的策略设置:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
  • RemoteSigned:允许运行本地脚本,但远程下载的脚本需要数字签名。
  • Scope:CurrentUser 表示仅对当前用户生效,不会影响其他用户。

如果你需要更宽松的策略(但可能存在安全风险),可以使用以下命令:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

4. 注意事项

如果你更改了执行策略,建议定期检查系统安全,确保没有恶意脚本运行。
如果你处于企业环境,可能需要联系系统管理员以获取适当的权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值