ChatGPT解决这个技术问题 Extra ChatGPT

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

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.

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 Referred to link roelpeters.be/…

R
Ricardo Rocha

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.


Thanks a million. This did the trick for me (after 1h of research) and saved me another headache.
Thank you sir! After you add this in settings.json , you should reload or reopen vscode, a notification will ask you if you want to grant access for execution policy.
Where in the VSCode settings do you add this?
@Andy You have in the link associated with the phrase "visual studio code settings "
@Andy, Go to File -> Preferences -> Settings -> Extensions -> Scroll down and find "Edit in settings.json"
M
MoishyS

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.


Note: defaultProfile is known not to work on the initial restored terminal #123188 - when you open the terminal from the + button it should work. hopefully will get fixed soon.
As of May 2021 this is the correct solution. The old method of setting terminal.integrated.shellArgs.windows no longer works.
This worked perfectly. The previous answers are depreciated in VS Code. Thank you!
Had to restart the powershell within vscode to make this work. Thanks.
VSCode might give you three options of settings.json: workspace settings, default settings, and just settings. It didn't work for me unless I chose the last option: Open Workspace Settings.
j
javed

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"]

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


This did me. Thanks for the guide
Might be a silly question but what's b/n here?
h
hpopiolkiewicz

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:

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

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

Select "Command prompt"

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

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


j
jayprakash chaurasia

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

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser  

p
pix data

Press the windows-button on your keyboard Type 'PowerShell' Right-click Windows PowerShell Click Run as Administrator 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/


thanks a lot , I tried all solutions , but only this one help me
S
Safin Ghoghabori

Open VS code File -> Prefrences -> settings in the Search bar -> Search for "terminal.integrated.shellArgs" Click on the "Edit in setting.json" for Terminal>integrated>ShellArgs > windows [whatever you OS, select the respective settings] 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" },

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.


V
Viplav Soni

Run the below command then the issue will be resolved.

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


Just some more additional information on this
E
Edwin Pratt

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

A
Ahmed AlZabidi

Open VS code Go to File -> Prefrences -> settings in the Search bar -> Search for "terminal.integrated.defaultprofile.windows" 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"]

Thank you. And it needs to restart the VS code.
E
Edwin Pratt

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.


This might work but sounds like bad practice from a security standpoint.
D
Daniel

For security reasons, in case you share the computer with other users, use: PowerShell:

Set-ExecutionPolicy -Scope CurrentUser Unrestricted

No need for Admin privileges.


After entering the above command it works
P
Paboda Jay

Steps to resolve the issue,

Open PowerShell in your Computer (This will change the PowerShell execution policy on your Windows Computer) Run ( To get-ExecutionPolicy for your Machine )

Get-ExecutionPolicy -List

Run

Set-ExecutionPolicy -Scope CurrentUser Unrestricted


c
cizario

For Win10 users

In Visual Studio Code: File -> Preferences -> Settings Type in the search: terminal.integrated.defaultProfile.windows Click on the Edit in setting.json 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",

Save and restart Visual Studio Code


P
Priyank Kotiyal

The location of tag is changed, Steps:

Do Ctrl+Shift+P and type 'settings' and then choose 'Preferences: Open settings (JSON)': Then add "args": ["-ExecutionPolicy", "Bypass"] inside "terminal.integrated.profiles.windows"."PowerShell" in settings.json : Restart VS code.

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


why do we have shit tools like vscode , just use pycharm , its way better
I think people working on windows finds it better, WebStorm is also good but its paid.
i use windows , i generally use both of them (to keep me updated) , my GitHub desktop is connected to vscode for final reviews/comments but my development env. is pycharm , and pycharm is so much better.
J
Jacob Fortuna

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.


This fixed the issue for one run, but then it came back. The solution above worked for me.
b
bula

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.


l
lejlun

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

P
PedroPK

Adding this error message just to find this topic easily in the future:

    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

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)


T
Tomer Shetah

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.

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

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

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


B
Brad123

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"

C
Cyebukayire

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"
    },
}

where should you put this?
Hi @JovaneMullings I've edited my answer with clear path of where you need to paste this. Thank you:)
m
mayank1513

I faced a similar issue while trying to use pnpm. I just changed to GitBash instead of PowerShell for vs-code terminal, and it worked.


J
JERVI

since we are in 2022, and vdcode has changed the way to fix this issue in setting.json just open the terminal and run

Set-ExecutionPolicy -Scope CurrentUser Unrestricted