Visual studio code cmd error: Cannot be loaded because running scripts is disabled on this system

PowershellCommand LineVisual Studio-CodeVscode Settings

Powershell Problem Overview


Inside of visual studio code, I'm trying to execute a script.bat from the command line, but I'm getting the following error:

> File C:\Theses_Repo\train-cnn\environment\Scripts\activate.ps1 cannot be loaded because running scripts is disabled on this system.

After reading this I tried to run the visual studio code in administrator mode, thinking that the problem was a matter of privileges. But the error is throwing anyway.

Powershell Solutions


Solution 1 - Powershell

I found out here that you can add to your visual studio code settings the following and the problem will vanish: For visual studio code settings, go to File -> Preferences -> Settings -> Extensions -> Scroll down and find "Edit in settings.json". Do not forget to restart the visual studio code

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

The reason is that, in build command line integrations like visual studio code, you need to set the command line policies by your self. By setting the above configurations, the visual studio code will do that for you.

(read this to understand better the command line policies)

Update August 2021

It seems that terminal.integrated.shellArgs is deprecated. This answer shows how to do it in new versions.

Solution 2 - Powershell

the issue is that PowerShell by default restricts running scripts unless we change the execution policies.

we can change the execution policies by adding -ExecutionPolicy Bypass args. in vscode you will have to create a shell profile with these args by adding below in settings.json (ctrl + shift + p and type "settings.json")

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

Need to restart VS Code and the Terminal.

Note: terminal.integrated.shellArgs settings have been deprecated.

Solution 3 - Powershell

For more simplicity, I want to add the vs code settings path in addition to Ricardo's answer. you can get it like this:

File -> Preferences -> Settings and in the search bar write "automation".

After that, by looking your operating system enter "edit in settings.json".

Finally, add the following b/n the braces:

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

enter image description here

Solution 4 - Powershell

The simplest way to deal with this problem from Visual Studio Code is to change from powerShell to cmd (assuming there's no reason for using powershell in your case). To do so, follow these few steps:

  1. Terminal -> New Terminal
  2. In right lower corner select "Select Default Shell" option

enter image description here

  1. Select "Command prompt"

enter image description here

I have not found such solution among current answers. Hope that helps!

Solution 5 - Powershell

Face the same issue and this works for me. open PowerShell as Administrator and paste this.

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser  

Solution 6 - Powershell

  1. Press the windows-button on your keyboard

  2. Type 'PowerShell'

  3. Right-click Windows PowerShell

  4. Click Run as Administrator

  5. Run the following command and confirm with ‘Y’

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

for more information: https://www.roelpeters.be/solved-running-scripts-is-disabled-on-this-system-in-powershell/

Solution 7 - Powershell

  1. Open VS code

  2. File -> Prefrences -> settings

  3. in the Search bar -> Search for "terminal.integrated.shellArgs"

  4. Click on the "Edit in setting.json" for Terminal>integrated>ShellArgs > windows [whatever you OS, select the respective settings]

  5. At the top of the json file add this :

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

    For example after adding your json might look like:

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

  1. restart the VS code and try the command again (in my case i was trying ng serve)

Note: terminal.integrated.shellArgs settings have been deprecated.

Solution 8 - Powershell

Run the below command then the issue will be resolved.

set-ExecutionPolicy RemoteSigned -Scope CurrentUser ( I tried only in windows )

Solution 9 - Powershell

I have faced the same problem due to security reasons on Windows 10. I managed to fix it by running the following command in PowerShell:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Solution 10 - Powershell

  1. Open VS code
  2. Go to File -> Prefrences -> settings
  3. in the Search bar -> Search for "terminal.integrated.defaultprofile.windows"
  4. Click on the "Edit in setting.json" for Terminal > integrated > Default Profile: Windows [whatever you OS, select the respective settings].

At the top of the JSON file add this :

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

Note: The following settings line is deprecated:

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

Solution 11 - Powershell

I opened VS Code as Administrator and ran this command in the terminal:

Set-ExecutionPolicy Unrestricted

It allowed me to run the scripts without an errors.

Solution 12 - Powershell

For security reasons, in case you share the computer with other users, use: PowerShell: > Set-ExecutionPolicy -Scope CurrentUser Unrestricted

No need for Admin privileges.

Solution 13 - Powershell

Steps to resolve the issue,

  1. Open PowerShell in your Computer (This will change the PowerShell execution policy on your Windows Computer)

  2. Run ( To get-ExecutionPolicy for your Machine ) > Get-ExecutionPolicy -List

  3. Run
    > Set-ExecutionPolicy -Scope CurrentUser Unrestricted

Solution 14 - Powershell

For Win10 users

  1. In Visual Studio Code: File -> Preferences -> Settings
  2. Type in the search: terminal.integrated.defaultProfile.windows
  3. Click on the Edit in setting.json
  4. Add this:
"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. Save and restart Visual Studio Code

Solution 15 - Powershell

Run VS-Code as ADMIN.

This fixed my issue on my home PC with running ng new my-App which had produced this error when I first opened VS-Code from the installation process.

Solution 16 - Powershell

If you don't need to explicitly run this on PowerShell, then you may want to try running it in the command prompt.

Just type cmd and press enter. Doing so will open the command prompt in the current terminal window. It will behave same as a normal command prompt.

Solution 17 - Powershell

The location of tag is changed, Steps:

  1. Do Ctrl+Shift+P and type 'settings' and then choose 'Preferences: Open settings (JSON)': Locating settings

  2. Then add "args": ["-ExecutionPolicy", "Bypass"] inside "terminal.integrated.profiles.windows"."PowerShell" in settings.json : SettingsJSON

  3. Restart VS code.

There can be different steps if anything changed with VS code updates in future.

Solution 18 - Powershell

Added this line in settings.json

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

For me used following command in VS powershell and it starts working

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

Solution 19 - Powershell

This is not a VSCode specific issue, it is a OS one. There are different levels for machine, user, process that allow PowerShell Scripts to run and it must be enabled.

If this is your machine just change the execution policy to RemoteSigned or unrestricted so that is applies to your entire system. If you just want to use it in VSCode, the change your settings file or change you shortcut to include the execution policy you want to use. The Recommendation is RemoteSigned. Meaning all local code will run, but any remote scripts must be signed.

If this is a corporate machine, that has the Execution set to Restricted, then no code will run until that setting is changed. You can still run code by selecting it all in the VSCode editor and hitting F8. Now, if they have enforced this policy, then you need to talk to the IT time to get them to change it for you.

All of this is detailed in the PowerShell Help files.

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

Note, if your org is controlling this, the again, talk to them before trying to bypass the policy, because if they did this, this also means they are monitoring it, and if you do this that will know. I have seen things like this engender RPE's. (Resume Producing Events)

Solution 20 - Powershell

I Have this error in my visual studio 2019 (Version 16.8.4). Finally I found solution which is: EnableScripts (Make from PowerShell os windows (from Registry Editor of windows 10)

Brows the PowerShell as bellow and make 0 => 1 and that is it.

Registry Editor

Registry Editor

enter image description here

Solution 21 - Powershell

After tearing my hair out this is what I ended up doing. Instead of using CMD or PowerShell I switched over to BASH. In the 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",

The CMD and Powershell here are commented out in case you want to go back to one of those. To get to settings.json:

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

Solution 22 - Powershell

I had the same problem a few minutes ago: I did this and it worked for me

You need to edit your visual studio settings. Go to File -> Preferences -> Settings -> Extensions -> Scroll down and find "Edit in settings.json". Past these codes below, save, and restart the visual studio code.

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRicardo RochaView Question on Stackoverflow
Solution 1 - PowershellRicardo RochaView Answer on Stackoverflow
Solution 2 - PowershellMoishySView Answer on Stackoverflow
Solution 3 - PowershellAbduView Answer on Stackoverflow
Solution 4 - PowershellhpopiolkiewiczView Answer on Stackoverflow
Solution 5 - Powershelljayprakash chaurasiaView Answer on Stackoverflow
Solution 6 - Powershellpix dataView Answer on Stackoverflow
Solution 7 - PowershellBarani rView Answer on Stackoverflow
Solution 8 - PowershellViplav SoniView Answer on Stackoverflow
Solution 9 - Powershellsoumen sahaView Answer on Stackoverflow
Solution 10 - PowershellAhmed AlZabidiView Answer on Stackoverflow
Solution 11 - Powershelluser1838609View Answer on Stackoverflow
Solution 12 - PowershellDanielView Answer on Stackoverflow
Solution 13 - PowershellPaboda JayView Answer on Stackoverflow
Solution 14 - PowershellAndriy BalitskyyView Answer on Stackoverflow
Solution 15 - PowershellJacob FortunaView Answer on Stackoverflow
Solution 16 - PowershellbulaView Answer on Stackoverflow
Solution 17 - PowershellPriyank KotiyalView Answer on Stackoverflow
Solution 18 - PowershellshabnamView Answer on Stackoverflow
Solution 19 - PowershellpostanoteView Answer on Stackoverflow
Solution 20 - PowershellkargarfView Answer on Stackoverflow
Solution 21 - PowershellBrad123View Answer on Stackoverflow
Solution 22 - PowershellCyebukayireView Answer on Stackoverflow