今天想运行一个本地脚本的时候,发现公司的电脑PowerShell报错,被禁止运行脚本了,这可能是出于安全考虑,被AD域服务器的策略禁止了,但是我们如果有本地管理员权限是可以去掉这个限制的
报错内容:
PS C:\Users\david.deng\Downloads\IDM-Activation-Script-main> .\IAS.ps1
.\IAS.ps1 : 无法加载文件 C:\Users\david.deng\Downloads\IDM-Activation-Script-main\IAS.ps1,因为在此系统上禁止运行脚本。
有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ .\IAS.ps1
+ ~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
这个错误是因为PowerShell执行策略(Execution Policy)
限制了脚本的运行
方法 1:临时更改执行策略(推荐)
以管理员身份打开PowerShell,运行以下命令
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force
RemoteSigned
允许运行本地脚本,但远程脚本需要数字签名。-Scope Process
表示只对当前会话生效,关闭后恢复默认设置。
方法 2:永久更改执行策略(需谨慎)
如果需要长期允许运行脚本(不推荐安全性较低):
Set-ExecutionPolicy RemoteSigned -Force
注意:这会降低系统安全性,建议仅在信任脚本来源时使用
方法 3:直接绕过执行策略(单次运行)
powershell.exe -ExecutionPolicy Bypass -File "C:\Users\david.deng\Downloads\IDM-Activation-Script-main\IAS.ps1"
其他:
查看当前执行策略
Get-ExecutionPolicy -List
返回的可能结果:
Restricted
(默认,禁止运行脚本)RemoteSigned
(本地脚本可运行,远程脚本需签名)AllSigned
(所有脚本需签名)Unrestricted
(无限制,不推荐)Bypass
(完全绕过,高危)Undefined
未定义
转载请注明来源