330

I have started to learn Angular but I note that powershell in Windows gives me an error whenever I make an angular command like:

ng new new-app

or

ng serve

this is the error what I got:

ng : File C:\Users\< username >\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 serve
+ ~~
    + CategoryInfo          : SecurityError: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

P.S. I try these commands in cmd and it works.

Mina
  • 14,386
  • 3
  • 13
  • 26
Amir Makram
  • 12,030
  • 3
  • 13
  • 25
  • Can you run `Get-ExecutionPolicy` and provide the output? Additionally can you run to `C:\Users\< username >\AppData\Roaming\npm` and open the properties for `ng.ps1`, to see if there is a tick box which states "blocked", if so untick this. – Jacob Sep 21 '19 at 00:31
  • 4
    I think the best way is removing ng.ps1 when I did everything has worked again – Amir Makram Sep 21 '19 at 11:32
  • 2
    @TheFabio Actually May I will never know, after deleting ng.ps1 everything was going in perfect way. – Amir Makram Nov 05 '19 at 18:04
  • My Execution policy was not the issue but how I sent the arguments. If you are in the same boat, check out [Executing Angular Serve From Powershell With Parameters Fail](https://stackoverflow.com/questions/67973375/executing-angular-serve-from-powershell-with-parameters-fail?noredirect=1#comment120143363_67973375) – ΩmegaMan Jun 14 '21 at 16:11
  • @AmirMakram Sir, this question is not related to `javascript` language, so please don't add the `javascript` tag. – Mina Feb 15 '23 at 21:20

8 Answers8

850

Remove ng.ps1 from the directory C:\Users\%username%\AppData\Roaming\npm\ then try clearing the npm cache at C:\Users\%username%\AppData\Roaming\npm-cache\

ErraticFox
  • 1,363
  • 1
  • 18
  • 30
Amir Makram
  • 12,030
  • 3
  • 13
  • 25
  • 157
    FYI clearing the cache was not necessary for me. – Edwin Lambregts Nov 01 '19 at 13:59
  • 4
    Great, but why? Is it left over from a previous Angular installation and no longer being called correctly? Why does it no longer work? – Patrick Nov 20 '19 at 04:55
  • 2
    Actually, I don't know. I don't even found any mention for this file anywhere so I thought that file really not necessary, so I just delete it – Amir Makram Nov 20 '19 at 13:22
  • I have the "ng.ps1" (and "ng.cmd" and "ng", and "node_modules" folder) in C:\Users\[username]\AppData\Roaming\npm folder. They were (re)created 2 days ago when I run ng update (I checked the modified date). After that update (current 8.3.21, previous: 8.3.xx) the ng stop to work with Powershell. Deleting it (renamed) solved the problem. No cache cleaning is needed but in VS Code you need to kill and reopen the Terminal. Maybe Angular introduced the "ng" command directly as a powershell script-let but that resulted in this common permission problem ?! – Alex 75 Dec 23 '19 at 00:24
  • You don't need to do this - see the answer below https://stackoverflow.com/a/58710158/834431 – Chris Apr 01 '20 at 12:06
  • If you have ERROR 'More than one module matches. Use skip-import option to skip importing the component into the closest module.', please use `ng g c new-component --module app` Good Luck – Mojtaba Nava Jul 11 '20 at 08:54
  • Just clearing the cache worked for me lol. – Tarik Ćosović Dec 06 '20 at 21:21
  • In my case it ng.ps1 was not residing in C:\Users\%username%\AppData\Roaming\npm\ instead it was in C:\Program Files\nodejs\ng.ps1. Removing this helped me to resolve the issue. I use NVM to support multiple version on Node. – Desmond Jun 07 '21 at 04:01
  • 5
    For anybody who wonders why this works: Windows by default blocks running unsigned powershell scripts because of security concerns. What is weird is why angular team keeps that script while it's really default behaviour for it to break Angular CLI and systems with unsigned script execution enabled are a minority. Removing this powershell script just stops Powershell from trying to execute .ps1 file and fall back to old cmd script, that also works, but was never restricted by Microsoft. – Dominik Szymański Feb 09 '22 at 20:02
629

I solved my problem by running below command

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Stanley Mohlala
  • 6,816
  • 1
  • 11
  • 20
40

script1.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170

This error happens due to a security measure which won't let scripts be executed on your system without you having approved of it. You can do so by opening up a powershell with administrative rights (search for powershell in the main menu and select Run as administrator from the context menu) and entering:

set-executionpolicy remotesigned
Ihor Patsian
  • 1,288
  • 2
  • 15
  • 25
Hozaifa
  • 417
  • 3
  • 3
  • Why do I specifically need to do this, when other folks does not have the same issue than me with the same version? – Yogurtu Nov 09 '21 at 15:49
10

Step 1

First, you have to need to open the command prompt and run this command.

set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Step 2

Now you have to run the second command on your system. This command is:

Get-ExecutionPolicy

Step 3

To view their policy, you need to run this command in your command prompt:

Get-ExecutionPolicy -list

https://www.c-sharpcorner.com/article/how-to-fix-ps1-can-not-be-loaded-because-running-scripts-is-disabled-on-this-sys/

mahsa k
  • 555
  • 6
  • 9
2

Step1: Get-ExecutionPolicy for your Machine using the below command

Get-ExecutionPolicy -List

Step2: Once your identity scope and execution policy, please run the below commands using the same.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

if above doesn't work, install the minimum node version angular required and run bellow command

npm install -g @angular/cli

if you want handle multiple node version use nvm as follows;

https://www.freecodecamp.org/news/node-version-manager-nvm-install-guide/

  • It is worth remembering that after applying the command, the operation of the 'ng' command was immediate, I didn't even need to raise the application's permissions (VSCode) as an administrator. – Misael C. Homem Jul 13 '23 at 04:30
0

You can try Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser.

Important things to note when running this command:

  1. run ng from project folder
  2. check ng version
  3. check angular cli in properly install or you can reinstall by running npm install -g @angular/cli
ABabin
  • 2,724
  • 24
  • 30
0

This error happens due to a security measure that won't let scripts be executed on your system without you having approved it.

Solution:-

  1. Open Windows PowerShell

  2. execute this command

    set-ExecutionPolicy RemoteSigned -Scope CurrentUser

-5

open windows powershell, run as administrater and SetExecution policy as Unrestricted then it will work.

  • 11
    Welcome to SO, complete your answer by providing the commands that do the works – Saeed Zhiany Nov 04 '19 at 07:23
  • 1
    This is a pretty bad advice as it opens the door to run any PowerShell script on your system. – 1nternetz Jun 15 '21 at 10:20
  • 2
    As stated in a previous answer ```Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser``` is a better way to go as it is less prone to open your system to running a malicious script. RemoteSigned 1) The script has to be signed by a trusted publisher. 2) The scope is set to the current user instead of the default which is LocalMachine. See Microsoft's documentation for additional details. https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1 – 1nternetz Oct 04 '21 at 13:03