PowerShell - 在此系统上禁用运行脚本 [修复]
运行 PowerShell 脚本时,如果收到错误消息,无法加载,因为在此系统上禁用运行脚本,这是因为 PowerShell 执行策略 默认设置为 受限制并且不允许运行脚本。
它抛出异常消息为
cannot be loaded because running scripts is disabled on this systemPowerShell 脚本已禁用错误消息如下
.\Get-Printers.ps1: File CL\Get-Printers.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170PowerShell 实现了内置安全功能。 PowerShell 执行策略是一项安全功能,可控制运行脚本和加载配置的条件。 PowerShell 中的执行策略的设置是为了避免在系统中运行恶意脚本。
在本文中,我将解释修复由于此系统上禁用运行脚本而无法加载文件的不同方法。
让我们了解如何使用不同的执行策略来执行正在运行的 PowerShell 脚本。
解决方案:在此系统上禁用运行脚本
受限模式下的PowerShell执行策略避免运行脚本以确保安全。
酷提示:使用Get-ExecutionPolicy 了解应用于您系统的默认策略。
使用 RemoteSigned 执行策略
RemoteSigned执行策略是一个更安全的选项。启用后,它允许运行本地脚本。来自外部的所有其他脚本都需要由受信任的发布者签名。
Set-ExecutionPolicy RemoteSigned - 设置 RemoteSigned 执行策略
- 允许运行本地脚本。
- 现在,如果您尝试运行 .ps1 文件,它不会给出“运行脚本在此系统上被禁用”错误。
酷提示:如何修复 PowerShell 中的脚本未数字签名错误!
使用无限制执行策略
UnRestricted 是非 Windows 系统上设置的默认执行策略。如果您在系统上启用了此策略,PowerShell 可以运行任何未签名的脚本文件。
您可以使用Set-ExecutionPolicy cmdlet 更改执行策略。
Set-ExecutionPolicy Unrestricted- 警告管理员与无限制模式相关的策略更改和安全风险。
- 如果您选择选项“Y”或“全部是”,则会应用该策略。
- 设置无限制执行策略后,如果尝试运行 ps1 文件,不会给出运行脚本在系统上被禁用错误。
酷提示:如何在 PowerShell 中使用多行命令!
使用旁路执行策略
使用绕过执行策略,不会阻止任何内容,并且如果您尝试运行脚本,它不会向您发出警告或提示进行确认。
使用 ByPass 策略时,脚本会临时运行,安全性较低。
powershell -executionpolicy ByPass -File .\Get-Printers.ps1- 运行安全性较低的 ps1 脚本文件并执行它。
- 一旦您关闭 PowerShell 会话,它也会随之关闭 ByPass。
使用 PowerShell ISE
如果您不想设置执行策略但仍想运行 ps1 文件内的脚本,最好的解决方法是在 PowerShell ISE 中打开脚本文件。
选择脚本中的所有代码,然后按 F8 按钮执行脚本。
注意:不要使用F5执行,否则会尝试运行ps1文件并抛出文件无法加载错误。
这样,您将不需要任何权限,也不会在此系统错误上禁用任何类型的运行脚本。
酷提示:如何在 PowerShell 中向字符串或变量添加新行!
结论
我希望上面的文章修复文件无法加载,因为运行脚本被禁用这个系统错误,使用set-executionpolicy有助于解决您的问题。
使用 RemoteSigned 执行策略来避免运行任何恶意脚本,或者如果脚本位于本地,请打开 PowerShell 脚本,选择所有代码,然后按 F8 执行它。
您可以在 ShellGeek 主页上找到有关 PowerShell Active Directory 命令和 PowerShell 基础知识的更多主题。



