ChatGPT解决这个技术问题 Extra ChatGPT

Why powershell does not run Angular commands?

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.

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.
I think the best way is removing ng.ps1 when I did everything has worked again
@TheFabio Actually May I will never know, after deleting ng.ps1 everything was going in perfect way.
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

E
ErraticFox

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\


FYI clearing the cache was not necessary for me.
Great, but why? Is it left over from a previous Angular installation and no longer being called correctly? Why does it no longer work?
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
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 ?!
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.
S
Stanley Mohlala

I solved my problem by running below command

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser


This should be the correct answer for new installs.
This seems to be right but quite unreliable.
after this comment i enter 'a' to apply to All Policies. Thank You!
This fails in some enterprise environments where we are unable to set these perms.
I
Ihor Patsian

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

Why do I specifically need to do this, when other folks does not have the same issue than me with the same version?
m
mahsa k

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/


P
Palla Vishal

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


Welcome to SO, complete your answer by providing the commands that do the works
This is a pretty bad advice as it opens the door to run any PowerShell script on your system.
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. docs.microsoft.com/en-us/powershell/module/…