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

在 Visual Studio 代码内部,我试图从命令行执行 script.bat,但是我得到了以下错误:

文件 C: 无法加载 Thes _ Repo train-cnn 环境脚本 activate.ps1,因为在此系统上禁用运行脚本。

在阅读了 这个之后,我尝试在管理员模式下运行可视化工作室代码,认为这个问题是一个特权问题。但无论如何,错误是抛出。

275358 次浏览

我发现 给你,你可以添加到你的 可视化工作室代码设置以下和问题将消失: 对于可视化工作室代码设置,转到文件-> 首选项-> 设置-> 扩展-> 向下滚动并找到“ Edit in setings.json”。< em > 不要忘记重新启动 Visual Studio 代码

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

原因是,在构建命令行集成(如 Visual Studio 代码)时,您需要自己设置命令行策略。通过设置上述配置,可视化工作室代码将为您完成这一任务。

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

2021年8月最新情况

看来 terminal.integrated.shellArgs是不被推荐的。 这个的答案显示了如何在新的版本中做到这一点。

这不是一个 VSCode 特定的问题,这是一个操作系统的问题

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

如果这是一台公司机器,其“执行”设置为“受限制”,则在更改该设置之前不会运行任何代码。您仍然可以通过在 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

请注意,如果您的组织正在控制这一点,再次,告诉他们 在试图绕过政策之前,因为如果他们这样做,这也意味着他们正在监测它,如果您这样做,将知道。我见过这种情况会导致视网膜色素上皮病。(恢复生产事件)

作为 ADMIN 运行 VS-Code。

这修复了我的问题在我的家用电脑上运行 ng 新的我的应用程序已经产生了这个错误,当我第一次打开 VS-代码从安装过程。

为了更加简单,我想在 Ricardo 的回答之外添加 vs 代码设置路径。你可以这样做:

文件-> 首选项-> 设置和在搜索栏写“自动化”。

然后,通过查看操作系统输入“ edit in setings.json”。

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

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

enter image description here

由于 Windows10的安全原因,我也遇到过同样的问题。 通过在 PowerShell 中运行以下命令,我成功地解决了这个问题:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

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

Set-ExecutionPolicy Unrestricted

它允许我在没有错误的情况下运行脚本。

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

只要键入 cmd,然后按回车键。这样做将在当前终端窗口中打开命令提示符。它的行为将与普通命令提示符相同。

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

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

在 Visual Studio Code 中处理这个问题的最简单方法是将 powerShell 更改为 cmd (假设在您的示例中没有理由使用 powerShell)。要做到这一点,请遵循以下几个步骤:

  1. 终端机-> 新终端机
  2. 在右下角选择“选择默认外壳”选项

enter image description here

  1. 选择“命令提示符”

enter image description here

我在现有的答案中还没有找到这样的解决方案。希望能有所帮助!

  1. 打开 VS 代码

  2. 文件-> 预设-> 设置

  3. 在搜索栏-> 搜索“ Terminal. Integrated.shellArgs”

  4. 点击“ Edit in seting.json”for Terminal > Integration > ShellArgs > windows [无论你的操作系统是什么,选择相应的设置]

  5. 在 json 文件的顶部添加以下内容:

    Windows”: [“-ExectionPolicy”,“ Bypass”]

    例如,在添加 json 之后,它可能看起来像:

{
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"],
"git.autofetch": true,
"peacock.favoriteColors": [
{
"name": "Angular Red",
"value": "#b52e31"
},
{
"name": "Auth0 Orange",
"value": "#eb5424"
},
  1. 重新启动 VS 代码并再次尝试命令(在我的例子中,我尝试 ng service)

注意: 终端设置已被废弃。

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

Set-ExectionPolicy-Scope CurrentUser 无限制

不需要管理员特权。

我有这个错误在我的视觉工作室2019(版本16.8.4)。 最后我找到了解决办法: EnableScripts (从 PowerShell os 窗口创建(从 Windows10的注册表编辑器创建)

将 PowerShell 设置为0 = > 1,就是这样。

Registry Editor

Registry Editor

enter image description here

解决问题的步骤,

  1. 在计算机中打开 PowerShell (这将更改 Windows 计算机上的 PowerShell 执行策略)
  2. Run (机器的获取执行策略)

获取-执行策略-列表

  1. 快跑

Set-ExectionPolicy-Scope CurrentUser 无限制

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

set-ExecutionPolicy RemoteSigned -Scope CurrentUser (我只在窗户上试过)

  1. 按下键盘上的窗口按钮

  2. 输入“ PowerShell”

  3. 右键单击 Windows PowerShell

  4. 单击“以管理员身份运行”

  5. 运行以下命令并用“ Y”确认

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

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

希望这能解决问题

问题是 PowerShell 默认限制运行脚本,除非我们更改 执行策略

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

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

需要重新启动 VS 代码和终端。

注意: terminal.integrated.shellArgs设置为 不赞成

  1. 打开 VS 代码
  2. 转到文件-> 预置-> 设置
  3. 在搜索栏-> 搜索“ Terminal al.Integrated.defaultprofile.windows”
  4. 点击终端 > 集成 > 默认配置文件的“ Edit in seting.json”: Windows [无论你的操作系统是什么,选择相应的设置]。

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

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

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

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

对于 Win10用户

  1. 在 VisualStudio 代码中: File -> Preferences -> Settings
  2. 输入搜索结果: terminal.integrated.defaultProfile.windows
  3. 点击 Edit in setting.json
  4. 添加以下内容:
"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",
  1. 保存并重新启动 VisualStudio 代码

在扯掉我的头发之后,这就是我最后做的事情。我没有使用 CMD 或 PowerShell,而是切换到了 BASH。 在设置中。 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,以防您想回到其中之一。 返回文章页面设置:

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

在 setings.json 中添加了这一行

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

对于我使用下面的命令在 VS Powershell 和它开始工作

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

标记的位置改变,步骤:

  1. 按 Ctrl + Shift + P 键入“设置”,然后选择“首选项: 打开设置(JSON)”: Locating settings

  2. 然后将“ args”: [“-ExectionPolicy”,“ Bypass”]添加到“ Terminal al.Integrated.profiles.windows”中: SettingsJSON

  3. 重新启动 VS 代码。

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

几分钟前我也遇到了同样的问题: 我这么做了,而且很管用

您需要编辑您的视觉工作室设置。 进入文件-> 参数设置-> 设置-> 扩展-> 向下滚动,找到“编辑在 setings.json”。通过以下代码,保存并重新启动可视化工作室代码。

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

"terminal.integrated.defaultProfile.windows": "PowerShell",
"files.associations": {
"*.html": "html"
},
}

添加这个错误消息只是为了在将来更容易找到这个主题:

    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


我在尝试使用 pnpm 时遇到了类似的问题。对于 vs-code 终端,我只是将 PowerShell 改为 GitBash,而且它工作正常。

因为我们是在2022年,并且 vdcode 已经改变了在 seting.json 中修复这个问题的方法,只需打开终端并运行

Set-ExecutionPolicy -Scope CurrentUser Unrestricted

除非你真的要求默认终端 Windows PowerShell,否则我建议你直接改变终端的类型。这很容易做到: 在 shell 的右上部,单击加号旁边的朝下的小箭头。然后选择您想要使用的终端(我喜欢好的老 CMD) ,您甚至可以选择一个默认为下次您打开一个新的终端。 enter image description here

我不清楚我应该在哪里添加它("terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "Bypass"])。

我在 setings.json 文件中有一个类似的代码

{
"python.defaultInterpreterPath": "C:\\Users\\Hansamal\\AppData\\Local\\Programs\\Python\\Python36\\python.exe",
"workbench.editorAssociations": {
"*.ipynb": "jupyter-notebook"
},
"notebook.cellToolbarLocation": {
"default": "right",
"jupyter-notebook": "left"
},
"json.schemas": [


]

}

更新 Powershell 执行策略。

设置全局无限制执行策略将运行任何脚本,但也会显示来自窗口的警告。

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

而是允许正在运行的脚本。您可以从错误中找到脚本的完整路径。

powershell -ExecutionPolicy Bypass -File C:\Users\Me\AppData\Roaming\npm\webpack.ps1

在这里,我已经提供了运行网络包的访问。