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

Posted

技术标签:

【中文标题】Visual Studio 代码 cmd 错误:无法加载,因为在此系统上禁用了运行脚本【英文标题】:Visual studio code cmd error: Cannot be loaded because running scripts is disabled on this system 【发布时间】:2019-10-05 12:51:14 【问题描述】:

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

文件 C:\Thes_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/… 【参考方案1】:

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

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

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

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

2021 年 8 月更新

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

【讨论】:

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

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

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

之后,通过查看您的操作系统,输入“edit in settings.json”。

最后,在大括号中添加以下内容:

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

【讨论】:

我做到了。感谢您的指导【参考方案3】:

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

我们可以通过添加-ExecutionPolicy Bypass args 来更改执行策略。在 vscode 中,您必须通过在 settings.json 中添加以下内容来创建带有这些参数的 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 才能使其工作。谢谢。 这个可以,之后只需要重启 VS Code 和终端【参考方案4】:

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

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

    选择“命令提示符”

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

【讨论】:

【参考方案5】:

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

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser  

【讨论】:

【参考方案6】:

    打开 VS 代码

    文件 -> 首选项 -> 设置

    在搜索栏中 -> 搜索“terminal.integrated.shellArgs”

    点击终端>集成>ShellArgs>窗口的“在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 设置已被弃用。

【讨论】:

【参考方案7】:

    按下键盘上的窗口按钮

    键入“PowerShell”

    右键单击 Windows PowerShell

    单击以管理员身份运行

    运行以下命令并用'Y'确认

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

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

【讨论】:

【参考方案8】:

运行下面的命令,问题就解决了。

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

【讨论】:

关于this的更多信息【参考方案9】:

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

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

【讨论】:

【参考方案10】:
    打开 VS 代码 转到文件 -> 首选项 -> 设置 在搜索栏中 -> 搜索“terminal.integrated.defaultprofile.windows” 点击终端的“在 setting.json 中编辑”> 集成 > 默认配置文件:Windows [无论您使用什么操作系统,选择相应的设置]。

在 JSON 文件的顶部添加:

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

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

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

【讨论】:

谢谢。并且需要重启VS代码。【参考方案11】:

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

Set-ExecutionPolicy Unrestricted

它让我可以毫无错误地运行脚本。

【讨论】:

这可能有效,但从安全角度来看,这听起来像是不好的做法。【参考方案12】:

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

Set-ExecutionPolicy -Scope CurrentUser Unrestricted

不需要管理员权限。

【讨论】:

输入上述命令后就可以了【参考方案13】:

解决问题的步骤,

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

Get-ExecutionPolicy -List

    运行

Set-ExecutionPolicy -Scope CurrentUser Unrestricted

【讨论】:

【参考方案14】:

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

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

【讨论】:

这解决了一次运行的问题,但后来又回来了。上面的解决方案对我有用。【参考方案15】:

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

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

【讨论】:

【参考方案16】:

Win10 用户

    在 Visual Studio 代码中:File -> Preferences -> Settings 输入搜索:terminal.integrated.defaultProfile.windows 点击Edit in 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

【讨论】:

【参考方案17】:

标签位置改变,步骤:

    执行 Ctrl+Shift+P 并键入“设置”,然后选择“首选项:打开设置 (JSON)”:

    然后在 settings.json 的 "terminal.integrated.profiles.windows"."PowerShell" 中添加 "args": ["-ExecutionPolicy", "Bypass"] :

    重启 VS 代码。

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

【讨论】:

为什么我们有 vscode 之类的狗屁工具,用 pycharm 就好了 我认为在 Windows 上工作的人会觉得它更好,WebStorm 也不错,但它是付费的。【参考方案18】:

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

如果这是您的机器,只需将执行策略更改为 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

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

【讨论】:

【参考方案19】:

我的 Visual Studio 2019(版本 16.8.4)出现此错误。 最后我找到了解决方案: EnableScripts(从 PowerShell os windows 制作(来自 windows 10 的注册表编辑器)

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

【讨论】:

【参考方案20】:

在把头发扯掉后,这就是我最终要做的事情。我没有使用 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"

【讨论】:

【参考方案21】:

在 settings.json 中添加了这一行

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

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

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

【讨论】:

以上是关于Visual Studio 代码 cmd 错误:无法加载,因为在此系统上禁用了运行脚本的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio Installer(2017)点击 无反应 也无错误日志

C#在控制台应用程序中构建Visual Studio项目

visual studio没有无错误提示了 怎么办?

Visual Studio 2017 UTF-8 无 BOM 一站式解决办法

Visual Studio 2012 中的普通 C# 编辑器(无智能感知、无缩进、无代码突出显示)

使用Microsoft Visual Studio 2019进行unity开发代码无智能提示