当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何解决:由于禁用运行脚本而无法加载脚本

作者:精品下载站 日期:2024-12-14 13:34:19 浏览:12 分类:玩电脑

如何解决:由于禁用运行脚本而无法加载脚本


[玩转系统] 如何解决:由于禁用运行脚本而无法加载脚本

当您尝试运行 PowerShell 脚本时,有时会显示以下错误消息:

.\Script.ps1 : File C:\Script.ps1 cannot be loaded because running scripts is disabled
  on this system. For more information, see about_Execution_Policies at
  https:/go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Script.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

此错误消息是由 PowerShell 执行策略的配置引起的。

警告:这些限制是为了防止您无意中运行可能损坏系统的脚本。

消除此错误消息并运行脚本的解决方案很简单。但在决定如何修复之前,您需要考虑范围:

  • 您是否只想运行这个特定的脚本(此时此地)? -
  • 您希望能够一直运行所有脚本吗?

(这是用于解决此问题的两个最常见的选项,但还存在更多选项!)

如果您只想运行该脚本这一次,请使用以下命令允许它在当前 PowerShell 会话中运行:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process

在上面的命令中,范围设置为“Process”。这意味着新的执行策略仅在当前进程中有效。旧的限制在此特定 PowerShell 会话之外仍然适用。

或者,如果您希望以后能够在系统上自由运行脚本,请使用以下命令:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

当范围设置为“用户”时,新的 PowerShell 执行策略将保留在注册表中,并将在 PowerShell 会话和系统重新启动时保留。

如何在没有 PowerShell 的情况下管理 Office 365

谷歌搜索 PowerShell 命令可能非常耗时,但经常需要,例如同步 Azure AD Connect、管理 Office 365 日历权限等。

所有垂直领域的组织和公司现在开始使用 Easy365Manager 来简化和简化其日常 AD 和 Office 365 操作。

Easy365Manager 是 Active Directory 用户和计算机的管理单元,允许您管理 Office 365 许可证和邮箱并直接从 AD 用户属性执行 Azure AD Connect 同步:

借助 Easy365Manager,您不再需要 PowerShell 进行日常管理,甚至可以停用本地 Exchange Server。

观看此点播网络研讨会以充分了解 Easy365Manager:

[玩转系统] 如何解决:由于禁用运行脚本而无法加载脚本

请在此处阅读完整的功能列表,或在此处下载 30 天全功能无风险试用版。

PowerShell 执行策略

PowerShell 提供的执行策略不仅仅是前面提到的两种。

总的来说,PowerShell 提供了七种不同的执行策略:

1.全签名

通过 AllSigned 执行策略,由受信任的发布者签名的脚本无需任何干预即可运行。

由不受信任的实体签名的脚本将出现提示,允许您运行该脚本。

2. 绕过

通过旁路,不会阻止任何运行,并且不会出现带有警告的提示。

3. 默认

默认策略因操作系统而异:

对于 Windows 客户端,默认策略指示“受限”。

对于 Windows 服务器操作系统,默认策略指示 RemoteSigned。

4. 远程签名

使用 RemoteSigned 执行策略,从 Internet 下载的任何脚本都必须由受信任的发布者签名。

本地脚本可以在没有脚本数字签名的情况下运行。

5. 限制

此配置允许您运行单独的 PowerShell 命令,但会阻止脚本(包括模块)的运行。

6. 未定义

此设置表示未配置执行策略(对于当前作用域)。

7. 不受限制

此执行策略允许运行未签名的脚本,但在运行非来自本地 Intranet 区域的脚本时警告用户。

PowerShell 执行策略范围

上述PowerShell执行策略可以在五个不同的范围内配置。

范围按以下顺序从上到下优先:

1. 机器策略

此范围由组策略对象 (GPO) 中的计算机策略配置。

它影响系统上的所有用户。

2. 用户策略

此范围由组策略对象 (GPO) 中的用户策略配置。

它仅影响 GPO 所针对的用户。

3. 流程

此范围仅影响当前进程(PowerShell 会话)。

当当前进程关闭时,配置的执行策略不再存在。

4. 当前用户

此设置仅影响当前用户,并在 HKEY_CURRENT_USER 注册表配置单元中重新启动后保留。

5.本地机器

此设置会影响系统上的所有用户,并在重新启动后保留在 HKEY_LOCAL_MACHINE 注册表配置单元中。

如何检查运行脚本被禁用的原因

由于执行策略可以在不同的范围级别上设置,因此您需要查看所有策略以了解脚本在系统上被阻止的原因。

使用以下命令列出为各种范围配置的 PowerShell 执行策略:

Get-ExecutionPolicy -List

该命令的输出可能类似于以下内容:

PS C:\> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process    Unrestricted
  CurrentUser       Undefined
 LocalMachine      Restricted

请记住,较高的范围优先于较低的范围。

进一步阅读

要进一步深入了解 PowerShell 执行策略,请查看 Microsoft 的官方文档。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯