小墨の博客

梦想需要付诸行动,否则只能是梦

Powershell 无法加载文件 因为在此系统上禁止运行脚本。有关详细信息,请参阅...

无法加载文件 C:\Users\Coz\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅

 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。


Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows

. : 无法加载文件 C:\Users\Coz\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅
 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+ . 'C:\Users\Coz\Documents\WindowsPowerShell\profile.ps1'
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess
PS C:\WINDOWS\system32>


问题原因

PowerShell 或者 windows 终端启动时,为了确保安全,文件的执行策略默认设置为 Restricted 。 Restricted 执行策略不允许任何脚本运行。  

有关文件的执行策略可参考:


关于执行策略 - PowerShell | Microsoft Docs

介绍 PowerShell 执行策略并说明如何管理它们。

https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2


其中写到:Restricted 执行策略允许单独的命令,但不允许任何脚本运行,将阻止运行所有脚本文件,包括格式设置和配置文件 (.ps1xml) 、模块脚本文件 (.psm1) 和 PowerShell 配置文件 (.ps1) 。

而 AllSigned 和 RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本。


  • AllSigned 要求所有脚本和配置文件都由受信任的发布者签名,包括在本地计算机上编写的脚本。

  • Bypass 没有任何内容被阻止,也没有警告或提示。

  • Default 默认执行策略。Windows客户端受限或Windows服务器远程登录。

  • RemoteSigned 要求从Internet下载的所有脚本和配置文件都由受信任的发布者签名。Windows server计算机的默认执行策略。

  • Restricted 不加载配置文件或运行脚本。Windows客户端计算机的默认执行策略。

  • Undefined 没有为作用域设置执行策略。从未由组策略设置的范围中删除分配的执行策略。如果所有作用域中的执行策略都未定义,则有效的执行策略将受到限制。


Unrestricted 从PowerShell 6.0开始,这是非Windows计算机的默认执行策略,无法更改。加载所有配置文件并运行所有脚本。如果您运行的是从internet下载的未签名脚本,则在运行之前系统会提示您输入权限。


解决方法

因此只需要降低安全性等级,将执行策略改为 RemoteSigned 即可执行脚本,在窗口中使用 Set-ExecutionPolicy 命令即可。

关于 Set-ExecutionPolicy 命令可参考:


Set-ExecutionPolicy (Microsoft.PowerShell.Security) - PowerShell | Microsoft Docs

https://learn.microsoft.com/zh-cn/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.2


具体方法

以管理员身份打开 PowerShell 或者 windows 终端,执行以下命令并确认。

set-executionpolicy remotesigned

然后再次运行该脚本文件即可通过。

例如:

PS C:\WINDOWS\system32> get-executionpolicy
Restricted
PS C:\WINDOWS\system32> set-executionpolicy remotesigned

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): Y
PS C:\WINDOWS\system32> get-executionpolicy
RemoteSigned

66676643d00244a0b3ae7d05a82a99c8[1].png


恢复默认设置

通过修改将降低系统的安全性,可能带来被病毒或恶意软件攻击的风险。

因此,在执行完自己编写的脚本文件后,可以将设置改回默认,执行以下命令即可

set-executionpolicy Restricted

同样需要进行确认。


其他

如果需要了解计算机上的现用执行策略,可以打开PowerShell 然后输入

get-executionpolicy


原文链接:https://blog.csdn.net/Ximerr/article/details/123498701

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:512
    • 页面总数:20
    • 分类总数:92
    • 标签总数:208
    • 评论总数:62
    • 浏览总数:235404

    | | |
    | |  Z-Blog PHP