AD域下无法运行PowerShell脚本

  1. 方法 1:临时更改执行策略(推荐)
  2. 方法 2:永久更改执行策略(需谨慎)
  3. 方法 3:直接绕过执行策略(单次运行)
  4. 其他:

今天想运行一个本地脚本的时候,发现公司的电脑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 未定义

转载请注明来源