解决Win10Powershell禁止运行脚本

一、需求

有时需要在电脑安装或卸载一些脚本,可是又没有执行脚本的权限

目的:卸载bun 执行powershell -c ~.bun\uninstall.ps1脚本

二、解决问题

1.打开Win10Powershell窗口方法

(1)以管理员的身份运行PowerShell(可以通过在桌面,按住shift+鼠标右键)
点击在此处打开Powershell窗口(S),打开PowerShell窗口
(2)也可以点击开始菜单,找到Powershell,右键“Windows PowerShell”选择“以管理员身份运行,打开Win10Powershell窗口
(3)点击开始菜单,找到Windows PowerShell,直接打开(此方式行不通)

2.查看当前用户组的执行策略

(1)可以运行命令:Get-ExecutionPolicy -List 查看当前用户的执行策略

1
Get-ExecutionPolicy -List

可以看到CurrentUser(当前用户)的执行策略为Restricted(受限制的)
我们在官网查看下该策略的具体内容,可以看到不允许脚本运行,所以才有了“无法加载文件uninstall.ps1,因为此系统上禁止运行脚本。

策略类别

组策略 执行策略
允许所有脚本 Unrestricted
允许本地脚本和远程签名脚本 RemoteSigned
仅允许签名脚本 AllSigned

(2)还可以输入以下命令直接查看当前用户的执行策略:

1
Get-ExecutionPolicy

如果返回 Restricted,说明脚本运行被禁止。

3.更改执行策略

(1)你可以将执行策略设置为允许运行脚本。推荐选择以下选项之一:

仅运行已签名的脚本(建议):
设置为 AllSigned,这要求所有脚本(包括 profile.ps1)必须有数字签名。
命令:

1
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy AllSigned -Force

优点:提高安全性,只有经过签名的脚本可以运行。
注意:如果你自己编写了 profile.ps1,需要对其进行签名(可使用自签名证书)。
(2)允许运行所有脚本(不推荐用于生产环境):

设置为 Unrestricted,允许运行所有脚本(包括未签名的)。
命令:

1
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force

缺点:降低安全性,可能存在运行恶意脚本的风险,仅在开发或测试环境中使用。
(3)仅运行本地脚本(推荐折中方案):
设置为 RemoteSigned,允许运行本地未签名的脚本,但需要远程脚本有签名。
命令:

1
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force

优点:兼顾安全性和便利性,适合大多数用户。

说明:
-Scope CurrentUser 只影响当前用户,不影响其他用户。
-Force 跳过确认提示

4.因为.bun\uninstall.ps1脚本未签名,所以选择策略Unrestricted

在Win10Powershell窗口内输入以下命令回车

1
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force

5.验证更改

再次运行以下命令确认策略已更改:

1
Get-ExecutionPolicy

如果返回结果显示为 Unrestricted,说明设置成功。

6.卸载bun

执行powershell -c ~.bun\uninstall.ps1脚本
还是在Win10Powershell窗口内输入以下脚本回车

1
powershell -c ~\.bun\uninstall.ps1

验证卸载bun是否成功

1
bun -v

返回结果没显示bun版本号说明卸载成功

7.注意事项

安全性:避免将执行策略设置为 Unrestricted 除非你完全信任你的环境。
管理员权限:如果需要为所有用户更改策略,使用 -Scope LocalMachine 代替 -Scope CurrentUser,但需以管理员身份运行。
重置策略:如果想恢复默认设置,可以重新设置为 Restricted:

1
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted -Force

参考:Windows中打开powershell后,出现报错无法加载文件 xxxx,因为在此系统上禁止运行脚本。解决方案详解!
PowerShell中无法加载ps1脚本文件,因为在此系统上禁止运行脚本


欢迎光临本站!


本站主要记录一些个人所学的内容。



解决Win10Powershell禁止运行脚本
http://example.com/page/2052/0709/18/59.html
作者
dzq88
发布于
2025年7月9日
许可协议