如何在Windows PowerShell中启用和使用脚本执行策略

如何在Windows PowerShell中启用和使用脚本执行策略

默认情况下,iPowerShell 允许您通过其控制台运行命令 (cmdlet)。 要执行脚本,您可以使用脚本代码创建一个记事本文件,使用 .ps1 文件扩展名保存它,然后通过 PowerShell 控制台执行它。 也可以直接将脚本粘贴到控制台执行。

但是,如果这是您第一次通过 PowerShell执行脚本,您会遇到“正在运行的脚本已被禁用”错误。 默认情况下,禁用 PowerShell 上的脚本执行作为一项安全措施,以防止恶意脚本在您的系统上运行。 在这里,我们向您展示了在 Windows PowerShell 上启用脚本执行策略的两种方法。

推荐:如何在Windows 11中启用RGB照明控制

如何检查您现有的执行策略

Powershell 设置执行策略未定义

您可以使用 PowerShell cmdlet 获取当前的执行策略。 了解您当前的执行策略对于了解您是否需要更改策略是必要的。

要获取当前用户的当前执行策略:

  1. 以管理员身份打开 Windows PowerShell。
  2. 在 PowerShell 控制台中键入以下命令并按 Enter:
    get-executionpolicy
  3. 由于您在执行脚本时遇到错误,因此返回可能会显示 Restricted 受限制的 作为您当前的执行政策。
  4. 如果您需要查看所有支持范围的执行策略:
    get-executionpolicy -list

您需要将执行策略更改为 RemoteSigned 才能运行本地脚本而不会出现错误。 您可以从“设置”应用和 PowerShell 更改执行策略。

如何使用设置应用程序启用 PowerShell 执行策略

您可以使用“设置”应用更改 PowerShell 执行策略并将其设置为 RemoteSigned。 您所要做的就是调整开发人员部分中的 PowerShell 设置,以更改执行策略以启用 PowerShell 脚本执行。

要使用设置更改执行策略:

  1. Win + I 打开设置。
  2. 打开 Privacy & Security 隐私与安全 左窗格中的选项卡。
  3. 接下来,点击 For developers 对于开发人员。
    面向开发人员的 Windows 11
  4. 点击展开 PowerShell  部分。
  5. 将开关切换到 change the execution policy to allow local PowerShell scripts to run without signing – Require signing for remote scripts更改执行策略以允许本地 PowerShell 脚本无需签名即可运行 – 远程脚本需要签名.
    启用 powershell 脚本执行 windows 11 设置
  6. 完成后,打开 PowerShell,键入 get executionpolicy 执行政策, 并按下 Enter进入. 当前用户的执行策略现在设置为 RemoteSigned远程签名。
  7. 如果需要禁用执行策略,请切换 PowerShell 开关并将其设置为 Off.

如何使用 PowerShell 允许脚本在 PowerShell 中运行

Powershell 设置执行策略 remotesigned

您可以使用 PowerShell cmdlet 将执行策略设置为 RemoteSigned。 命令行界面使您无需使用“设置”应用程序即可轻松快速更改执行策略。

此外,设置应用程序只能启用或禁用 RemoteSigned 执行策略。 而 PowerShell 还允许您设置其他策略和范围。

要使用 PowerShell 更改执行策略:

  1. 以管理员身份打开 PowerShell。
  2. 在 PowerShell 窗口中,键入以下命令并按 Enter进入:
    Set-ExecutionPolicy RemoteSigned
  3. 如果出现提示,请按 A 确认动作。 这将设置 RemoteSigned 远程签名 所有用户的执行策略。 如果你想为 Current User 当前用户 仅使用 Scope 参数后跟用户名。
  4. 例如,设置 RemoteSigned 远程签名 的执行政策 CurrentUser当前用户,使用以下命令:
    Set-ExecutionPolicy RemoteSgined -Scope CurrentUser
  5. 代替 当前用户 根据您的要求,在上述命令中与其他用户(范围)一起使用。

如何使用 PowerShell 删除脚本执行策略

设置执行策略未定义

如果要禁用脚本执行,请将执行策略设置为 Undefined  不明确的 使用e Set_ExecutionPolicy 命令。 这是默认状态,可防止 PowerShell 执行任何脚本。

要使用 PowerShell 禁用脚本执行:

  1. 使用提升的权限打开 PowerShell。
  2. 接下来,键入以下命令并按 enter 键以禁用所有用户的脚本执行:
    Set-ExecutionPolicy undefined
  3. 上面的命令将为所有用户设置执行策略默认值(未定义)。 如果要为特定范围禁用脚本执行,请使用以下命令:
    Set-ExecutionPolicy undefined -Scope CurrentUser
  4. 上面的命令将禁用脚本执行 CurrentUser 当前用户.

了解执行策略和范围

简单的说,PowerShell的执行策略就是控制PowerShell如何执行配置文件和脚本的策略。 预期目的是防止用户意外运行恶意脚本。 七个 PowerShell 执行策略是 Default, Restricted, RemoteSigned, AllSigned, Unrestricted, Bypass, and Undefined 默认、受限、RemoteSigned、AllSigned、不受限、旁路和未定义.

下表简要说明了所有 PowerShell 执行策略:

执行政策执法
默认将默认执行策略设置为 Restricted on Windows Client 和 RemoteSigned on Windows Server。
AllSigned允许执行发布者签名的脚本。
旁路不受限制地执行大型应用程序的脚本。
远程签名允许本地编写的脚本执行。 从 Internet 下载的脚本需要数字签名。
受限制的不允许脚本执行,但只允许执行单个 PowerShell 命令。
不明确的将执行策略设置为 Restricted for Windows clients 和 RemoteSigned for Windows Server。
无限制允许执行未签名的脚本,并对从 Internet 下载的脚本发出警告。

执行策略范围

您可以在 PowerShell 中为特定范围设置执行策略。 五个执行策略范围是 MachinePolicy, UserPolicy, Process, CurrentUser, 本地机器.

下表简要说明了所有执行策略范围:

执行策略范围执法
用户策略由当前用户的组策略配置。
机器政策由所有用户的组策略配置。
当前用户为当前用户配置并存储在 HKEY_CURRENT_MACHINE 注册表子项中。
本地机器为所有用户配置并存储在 HKEY_CURRENT_MACHINE 注册表子项中。
过程影响当前的 PowerShell 会话并在会话关闭时自动删除。

在 Windows 上添加或删除 PowerShell 脚本执行策略

Windows 客户端默认禁用 PowerShell 上的脚本执行,Windows 服务器设置为 RemoteSigned。 但是,高级用户可以更改执行策略以运行本地、已签名和未签名的 PowerShell 脚本。

或者,您可以通过将脚本粘贴到 PowerShell 控制台或将您的脚本回显到 PowerShell 标准输入来绕过 PowerShell 执行策略。 如果您想在不更改执行策略的情况下执行脚本,这将很有用。

推荐:WooCommerce付款计划插件SUMO WooCommerce Payment


发表评论