在 Windows 11(或 10)上,默认情况下,当您尝试在 PowerShell 上运行脚本时,它将失败,并显示“无法加载,因为在此系统上禁用了运行脚本”错误消息。这是因为 PowerShell 具有“执行策略”安全功能,可以控制如何加载配置文件和运行脚本,以防止恶意代码在系统上运行。
如果必须在 Windows 11(或 10)上运行脚本,则可以更改本地计算机、当前用户或会话的执行策略。
为本地计算机和当前用户设置 PowerShell 执行策略时,信息将存储在注册表中。如果为特定会话配置策略,则该策略将保存在内存中,然后在关闭会话时丢失。
根据 Microsoft 的说法,执行策略不限制操作。您可以通过在命令行界面 (CLI) 中键入脚本来绕过该策略。该策略旨在帮助用户防止运行恶意脚本。
在本指南中,我将教您如何更改执行策略以在 Windows 11 或 10 上的 PowerShell 上成功运行脚本。
从 PowerShell 更改 Windows 11 上的执行策略
要在 Windows 11(或 10)上更改 PowerShell 执行策略,请使用以下步骤:
1. 在 Windows 11 上打开开始。
2. 搜索 PowerShell,右键单击顶部结果,然后选择 Run as administrator (以管理员身份运行) 选项。
3. 键入以下命令以确认当前执行策略,然后按 Enter 键:
Get-ExecutionPolicy
4. (可选)键入以下命令以查看有效的 PowerShell 执行策略,然后按 Enter 键:
Get-ExecutionPolicy -List
5. 键入以下命令以更改 PowerShell 执行策略以允许脚本在 Windows 11 上运行,然后按 Enter 键:
Set-ExecutionPolicy RemoteSigned
6. (可选)键入以下命令以更改执行策略以防止脚本运行,然后按 Enter 键:
Set-ExecutionPolicy Restricted
完成这些步骤后,您可以再次执行脚本,它现在应该可以在 Windows 11 上成功运行。如果您不想再允许脚本在计算机上运行,则可以运行步骤中提到的可选命令。
如果要更改执行策略以运行当前用户或本地计算机的脚本,则需要使用“范围”选项,如下所示:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 或 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine.
在 Windows 11 上,您可以从四种不同的执行策略中进行选择,以允许或拒绝脚本:
• Restricted — 阻止任何脚本文件运行。
• RemoteSigned — 允许在计算机上创建脚本。但是,在没有可信签名的情况下,在其他设备上创建的脚本将无法运行。
• AllSigned — 允许所有脚本运行。但是,仅当受信任的发布者已包含签名时。
• Unrestricted — 不受限制地运行任何脚本。
如果您需要运行没有所需参数且不返回 output 的脚本,则无需更改执行策略。相反,您可以使用 PowerShell.exe -File "FILENAME" -ExecutionPolicy Bypass 命令来绕过限制。
从“设置”更改 Windows 11 上的执行策略
在 Windows 11 和 10 上,您还可以通过从“设置”应用程序更改命令控制台的配置来允许脚本在 PowerShell 上运行。
从 Windows 11
要从“设置”应用程序更改 PowerShell 执行策略,请使用以下步骤:
1. 打开设置.
2. 单击 System.
3. 单击 For developers 页面。
4. 单击 PowerShell 设置。
5. 打开“更改执行策略以允许本地 PowerShell 脚本 [...]”切换开关。
如果您不再需要此功能,可以使用相同的步骤阻止脚本,但在步骤 5 中,关闭“更改执行策略以允许本地 PowerShell 脚本 [...]”切换开关。
从 Windows 10
要从“设置”应用程序更改 PowerShell 执行策略,请使用以下步骤:
1. 打开设置.
2. 点击更新和安全.
3. 单击 For developers 页面。
4. 选中 PowerShell 设置的“更改执行策略以允许本地 PowerShell 脚本 [...]”选项。
5. 单击 Apply 按钮。
如果您不再需要此功能,可以使用相同的步骤阻止脚本,但在步骤 4 中,清除“更改执行策略以允许本地 PowerShell 脚本 [...]”选项并应用更改。
完成这些步骤后,该设置会将 PowerShell 的执行策略设置为“RemoteSigned”。此策略将允许您在不签名的情况下运行脚本,但需要对远程脚本进行签名。
更改执行策略以允许不对脚本进行数字签名
如果你有一个 PowerShell 脚本是在另一台计算机上创建或从 Internet 下载的,则尝试运行该脚本时,可能会收到“文件 [...]。无法加载 PS1。文件 [...].PS1 未进行数字签名。您无法在当前系统上运行此脚本“或”脚本不会在系统上执行“错误消息。但是,只要您知道该脚本可以安全使用,并且您从受信任的来源获取了它,就可以更改“Process”范围策略以成功运行它。
若要更改 PowerShell 执行策略以运行未进行数字签名的“.ps1”脚本,请使用以下步骤:
1. 打开开始.
2. 搜索 PowerShell,右键单击顶部结果,然后选择 Run as administrator (以管理员身份运行) 选项。
3. 键入以下命令以更改为允许具有数字签名的 PowerShell 脚本,然后按 Enter 键:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
完成这些步骤后,可以在当前会话期间使用 .\Your-PowerShell-Script.ps1 命令运行脚本文件。关闭 PowerShell 会话后,执行策略将恢复为原来的停留状态,以防止其他脚本运行。
如果您必须运行另一个脚本文件,则可以重复上述步骤。
上一篇:如何将 Windows 10 升级到 11 24H2
下一篇:返回列表
相关文章
U盘装系统(http://www.upzxt.net) 版权所有 (网站邮箱:78435178@qq.com)
本站资源均收集与互联网,其著作权归原作者所有,如侵犯到您的权益的资源,请来信告知,我们及时撤销相应资源