ChatGPT解决这个技术问题 Extra ChatGPT

Visual Studio 代码 cmd 错误:无法加载,因为在此系统上禁用了运行脚本

在 Visual Studio 代码中,我尝试从命令行执行 script.bat,但出现以下错误:

文件 C:\Theses_Repo\train-cnn\environment\Scripts\activate.ps1 无法加载,因为在此系统上禁用了运行脚本。

阅读 this 后,我尝试以管理员模式运行 Visual Studio 代码,认为问题出在权限问题上。但无论如何都会抛出错误。

1. 按键盘上的 windows 按钮。 2. 键入“PowerShell” 3. 右键单击 Windows PowerShell 4. 单击以管理员身份运行 5. 运行以下命令并使用“Y”确认 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine 参考链接 roelpeters.be/…

R
Ricardo Rocha

我发现 here 您可以将以下内容添加到您的 visual studio code settings 中,问题就会消失:对于 Visual Studio 代码设置,请转到文件 ->首选项->设置->扩展 ->向下滚动并找到“在 settings.json 中编辑”。 别忘了重启 Visual Studio 代码

"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]

原因是,在构建 Visual Studio 代码等命令行集成时,您需要自行设置命令行策略。通过设置上述配置,Visual Studio 代码将为您完成。

(阅读 this 以更好地理解命令行策略)

2021 年 8 月更新

似乎 terminal.integrated.shellArgs 已被弃用。 This 答案显示了如何在新版本中执行此操作。


太感谢了。这对我有用(经过 1 小时的研究)并让我再次头疼。
谢谢你,先生!在 settings.json 中添加后,您应该重新加载或重新打开 vscode,通知会询问您是否要授予执行策略的访问权限。
您在 VSCode 设置中的哪个位置添加了这个?
@Andy您在与短语“Visual Studio代码设置”相关联的链接中
@Andy,转到文件->首选项->设置->扩展->向下滚动并找到“在settings.json中编辑”
M
MoishyS

问题是 PowerShell 默认限制运行脚本,除非我们更改 execution policies

我们可以通过添加 -ExecutionPolicy Bypass 参数来更改执行策略。在 vscode 中,您必须通过在 settings.json 中添加以下内容来创建带有这些 args 的 shell 配置文件(ctrl + shift + p 并键入“settings.json”)

"terminal.integrated.profiles.windows": {
  "PowerShell": {
    "source": "PowerShell",
    "icon": "terminal-powershell",
    "args": ["-ExecutionPolicy", "Bypass"]
  }
},
"terminal.integrated.defaultProfile.windows": "PowerShell",

需要重启 VS Code 和终端。

注意:terminal.integrated.shellArgs 设置为 deprecated


注意:已知 defaultProfile 不能在初始恢复的终端 #123188 上工作 - 当您从 + 按钮打开终端时,它应该可以工作。希望很快会得到修复。
截至 2021 年 5 月,这是正确的解决方案。设置 terminal.integrated.shellArgs.windows 的旧方法不再有效。
这非常有效。之前的答案在 VS Code 中已被贬低。谢谢!
必须在 vscode 中重新启动 powershell 才能使其工作。谢谢。
VSCode 可能会为您提供 settings.json 的三个选项:工作区设置、默认设置和仅设置。除非我选择最后一个选项,否则它对我不起作用:打开工作区设置。
j
javed

为了更简单,除了里卡多的答案之外,我还想添加 vs 代码设置路径。你可以像这样得到它:

文件 -> 首选项 -> 设置,然后在搜索栏中输入“自动化”。

之后,通过查看您的操作系统,输入“在 settings.json 中编辑”。

最后,在大括号中添加以下 b/n:

"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]

https://i.stack.imgur.com/v41J0.png


这就是我。感谢您的指导
可能是一个愚蠢的问题,但这里的 b/n 是什么?
h
hpopiolkiewicz

从 Visual Studio Code 处理此问题的最简单方法是从 powerShell 更改为 cmd (假设在您的情况下没有理由使用 powershell)。为此,请按照以下几个步骤操作:

Terminal -> New Terminal 在右下角选择“Select Default Shell”选项

https://i.stack.imgur.com/2JdAf.png

选择“命令提示符”

https://i.stack.imgur.com/yqFF9.jpg

我在当前的答案中没有找到这样的解决方案。希望有帮助!


j
jayprakash chaurasia

面对同样的问题,这对我有用。以管理员身份打开 PowerShell 并粘贴。

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser  

p
pix data

按键盘上的 Windows 按钮 键入“PowerShell” 右键单击 Windows PowerShell 单击以管理员身份运行 运行以下命令并使用“Y”确认 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

欲了解更多信息:https://www.roelpeters.be/solved-running-scripts-is-disabled-on-this-system-in-powershell/


非常感谢,我尝试了所有解决方案,但只有这一个对我有帮助
S
Safin Ghoghabori

打开 VS 代码文件 -> 首选项 -> 搜索栏中的设置 -> 搜索“terminal.integrated.shellArgs” 单击终端>集成>ShellArgs > windows的“在setting.json中编辑” [无论你使用什么操作系统,选择相应的设置] 在 json 文件的顶部添加: terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"] 例如,添加 json 后可能如下所示:

"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"], "git.autofetch": true, "peacock.favoriteColors": [ { "name": "Angular Red", "value" : "#b52e31" }, { "name": "Auth0 Orange", "value": "#eb5424" },

重新启动 VS 代码并再次尝试该命令(在我的情况下,我正在尝试 ng serve)

注意: terminal.integrated.shellArgs 设置已被弃用。


V
Viplav Soni

运行以下命令,然后问题将得到解决。

set-ExecutionPolicy RemoteSigned -Scope CurrentUser(我只在 Windows 中尝试过)


关于this的更多信息
E
Edwin Pratt

由于 Windows 10 上的安全原因,我遇到了同样的问题。我设法通过在 PowerShell 中运行以下命令来修复它:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

A
Ahmed AlZabidi

打开VS代码转到文件->首选项->搜索栏中的设置->搜索“terminal.integrated.defaultprofile.windows”单击终端>集成>默认配置文件的“在setting.json中编辑”:Windows [whatever您的操作系统,选择相应的设置]。

在 JSON 文件的顶部添加以下内容:

"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
    "PowerShell": {
        "source": "PowerShell",
        "args": [
            "-ExecutionPolicy",
            "Bypass"
        ]
    }
},

注意:不推荐使用以下设置行:

"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"]

谢谢你。它需要重新启动 VS 代码。
E
Edwin Pratt

我以管理员身份打开 VS Code 并在终端中运行此命令:

Set-ExecutionPolicy Unrestricted

它允许我运行脚本而不会出现错误。


这可能有效,但从安全角度来看,这听起来像是不好的做法。
D
Daniel

出于安全原因,如果您与其他用户共享计算机,请使用:PowerShell:

Set-ExecutionPolicy -Scope CurrentUser Unrestricted

无需管理员权限。


输入上面的命令后就可以了
P
Paboda Jay

解决问题的步骤,

在您的计算机中打开 PowerShell(这将更改您的 Windows 计算机上的 PowerShell 执行策略)运行(为您的计算机获取 ExecutionPolicy)

获取执行策略列表

Set-ExecutionPolicy -Scope CurrentUser Unrestricted


c
cizario

对于 Win10 用户

在 Visual Studio 代码中:文件 -> 首选项 -> 设置 在搜索中键入:terminal.integrated.defaultProfile.windows 点击在 setting.json 中的编辑 添加这个:

"terminal.integrated.profiles.windows": {
  "PowerShell": {
    "path" : [
      "${env:windir}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
    ],
    "source": "PowerShell",
    "icon": "terminal-powershell",
    "args": [
      "-NoLogo",
      "-ExecutionPolicy",
      "ByPass"]
  }
},
"terminal.integrated.defaultProfile.windows": "PowerShell",

保存并重新启动 Visual Studio Code


P
Priyank Kotiyal

更改标签位置,步骤:

执行 Ctrl+Shift+P 并键入“设置”,然后选择“首选项:打开设置(JSON)”:然后在“终端.integrated.profiles.windows”中添加“args”:[“-ExecutionPolicy”,“Bypass”] .settings.json 中的“PowerShell”:重启 VS 代码。

如果将来随着 VS 代码更新发生任何变化,可能会有不同的步骤。


为什么我们有像 vscode 这样的狗屎工具,只使用 pycharm,它的方式更好
我认为在 Windows 上工作的人会发现它更好,WebStorm 也不错,但它是付费的。
我使用 windows,我通常同时使用它们(让我保持更新),我的 GitHub 桌面连接到 vscode 以进行最终评论/评论,但我的开发环境。是 pycharm ,而且 pycharm 好多了。
J
Jacob Fortuna

以管理员身份运行 VS-Code。

这解决了我在家用 PC 上运行 ng new my-App 的问题,当我第一次从安装过程中打开 VS-Code 时产生了这个错误。


这解决了一次运行的问题,但后来又回来了。上面的解决方案对我有用。
b
bula

如果您不需要在 PowerShell 上显式运行它,那么您可能需要尝试在命令提示符下运行它。

只需键入 cmd 并按 Enter。这样做将在当前终端窗口中打开命令提示符。它的行为与普通命令提示符相同。


l
lejlun

在 settings.json 中添加了这一行

"terminal.integrated.defaultProfile.windows": "PowerShell"

对我来说,在 VS powershell 中使用了以下命令,它开始工作

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

P
PedroPK

添加此错误消息只是为了将来轻松找到此主题:

    ng : File C:\Users\[USER_NAME]\AppData\Roaming\npm\ng.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
    + ng help
    + ~~
        + CategoryInfo          : SecurityError: (:) [], PSSecurityException
        + FullyQualifiedErrorId : UnauthorizedAccess


p
postanote

这不是 VSCode 特定的问题,而是操作系统问题。允许 PowerShell 脚本运行的机器、用户和进程有不同的级别,并且必须启用它。

如果这是您的机器,只需将执行策略更改为 RemoteSigned 或不受限制,以便适用于您的整个系统。如果您只想在 VSCode 中使用它,请更改您的设置文件或更改您的快捷方式以包含您要使用的执行策略。建议是远程签名的。这意味着所有本地代码都将运行,但必须对任何远程脚本进行签名。

如果这是一台公司机器,其 Execution 设置为 Restricted,则在更改该设置之前不会运行任何代码。您仍然可以通过在 VSCode 编辑器中选择所有代码并按 F8 来运行代码。现在,如果他们已经强制执行此策略,那么您需要与 IT 时间交谈,让他们为您更改它。

所有这些都在 PowerShell 帮助文件中有详细说明。

Get-Command -Name '*executionpolicy*' | ft -AutoSize

CommandType Name                Version Source                       
----------- ----                ------- ------                       
Cmdlet      Get-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security
Cmdlet      Set-ExecutionPolicy 3.0.0.0 Microsoft.PowerShell.Security


# get function / cmdlet details
(Get-Command -Name Get-ExecutionPolicy).Parameters
Get-help -Name Get-ExecutionPolicy -Full
Get-help -Name Get-ExecutionPolicy -Online
Get-help -Name Get-ExecutionPolicy -Examples

    Get-ExecutionPolicy
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
    Get-ExecutionPolicy -List

(Get-Command -Name Set-ExecutionPolicy).Parameters
Set-help -Name Set-ExecutionPolicy -Full
Set-help -Name Set-ExecutionPolicy -Online
Set-help -Name Set-ExecutionPolicy -Examples

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
    Set-ExecutionPolicy -ExecutionPolicy Restricted
    Invoke-Command -ComputerName "Server01" -ScriptBlock {Get-ExecutionPolicy} | Set-ExecutionPolicy -Force
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy AllSigned -Force
    Get-ExecutionPolicy -List
    Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Undefined
    Set-ExecutionPolicy -Scope Process -ExecutionPolicy AllSigned
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

请注意,如果您的组织正在控制这一点,请再次与他们交谈 before trying to bypass the policy,因为如果他们这样做了,这也意味着他们正在监控它,如果您这样做,就会知道。我见过这样的事情会产生 RPE。 (恢复生产活动)


T
Tomer Shetah

我的 Visual Studio 2019(版本 16.8.4)中出现此错误。最后我找到了解决方案:EnableScripts (Make from PowerShell os windows (from Registry Editor of windows 10)

如下浏览 PowerShell 并使 0 => 1 就是这样。

https://i.stack.imgur.com/EI4qU.png

https://i.stack.imgur.com/6yv9m.png

https://i.stack.imgur.com/4WniU.png


B
Brad123

把头发扯掉后,这就是我最终要做的。我没有使用 CMD 或 PowerShell,而是改用 BASH。在 settings.json 中:

//"terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe",
// "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",   
        "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",

此处的 CMD 和 Powershell 已被注释掉,以防您想返回其中之一。要访问 settings.json:

> File -> Preferences -> Settings -> in search type : "settings.json" ->
> Under [JSON] click "Edit in settings.json"

C
Cyebukayire

几分钟前我遇到了同样的问题:我这样做了,它对我有用

您需要编辑您的视觉工作室设置。转到文件 -> 首选项 -> 设置 -> 扩展 -> 向下滚动并找到“在 settings.json 中编辑”。将这些代码粘贴在下面,保存并重新启动 Visual Studio 代码。

   {
    "terminal.integrated.profiles.windows": {
        "PowerShell": {
            "source": "PowerShell",
            "icon": "terminal-powershell",
            "args": ["-ExecutionPolicy", "Bypass"]
        }
    },
    
    "terminal.integrated.defaultProfile.windows": "PowerShell",
    "files.associations": {
        "*.html": "html"
    },
}

你应该把这个放在哪里?
嗨@JovaneMullings 我已经用清晰的路径编辑了我的答案,你需要将它粘贴到哪里。谢谢:)
m
mayank1513

我在尝试使用 pnpm 时遇到了类似的问题。我刚刚将 vs-code 终端更改为 GitBash 而不是 PowerShell,并且它有效。


J
JERVI

因为我们是在 2022 年,并且 vdcode 已经改变了在 setting.json 中解决此问题的方式,只需打开终端并运行

Set-ExecutionPolicy -Scope CurrentUser Unrestricted