user979033
user979033

Reputation: 6420

ps1 cannot be loaded because running scripts is disabled on this system

I try to run powershell script from c#.

First i set the ExecutionPolicy to Unrestricted and the script is running now from PowerShell ISE.

Now this is c# my code:

class Program
{
    private static PowerShell ps;
    static void Main(string[] args)
    {
        ps = PowerShell.Create();
        string ps1File = Path.Combine(Environment.CurrentDirectory, "script.ps1");
        ExecuteScript(ps1File);
        Console.ReadLine();
    }

    static void ExecuteScript(string script)
    {
        try
        {
            ps.AddScript(script);
            Collection<PSObject> results = ps.Invoke();
            Console.WriteLine("Output:");
            foreach (var psObject in results)
            {
                Console.WriteLine(psObject);
            }
            Console.WriteLine("Non-terminating errors:");
            foreach (ErrorRecord err in ps.Streams.Error)
            {
                Console.WriteLine(err.ToString());
            }
        }
        catch (RuntimeException ex)
        {
            Console.WriteLine("Terminating error:");
            Console.WriteLine(ex.Message);
        }
    }
}

And the output is:

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

Upvotes: 526

Views: 882244

Answers (22)

Danrley Pereira
Danrley Pereira

Reputation: 1366

The more secure one should be (typed at an admin Powershell terminal):

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

Each case needs a thorough analysis to not expose your system to threats.

RemoteSigned

  • The default execution policy for Windows server computers.
  • Scripts can run.
  • Requires a digital signature from a trusted publisher on scripts and configuration files that are downloaded from the internet which includes email and instant messaging programs.
  • Doesn't require digital signatures on scripts that are written on the local computer and not downloaded from the internet.
  • Runs scripts that are downloaded from the internet and not signed, if the scripts are unblocked, such as by using the Unblock-File cmdlet.
  • Risks running unsigned scripts from sources other than the internet and signed scripts that could be malicious.

Default

  • Sets the default execution policy.
  • Restricted for Windows clients.
  • RemoteSigned for Windows servers.

take a look at all policies

In my case, I needed to allow my azurite (Azure Storage Emulator) script to run, I installed it using npm.

Upvotes: 11

NJENGAH
NJENGAH

Reputation: 1267

Let me improve this answer with the visuals. I took 3 steps and fixed this problem.

Step #1. I opened Windows PowerShell in admin mode (on windows searchbar search for Windows PowerShell) > right click choose the option Run as administrator. You will be prompted again just click on OK

enter image description here

Step #2 Run this command Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

enter image description here

type Y

Step 3: Close the terminal and move back to where you were previsouly running the command and test it. Like in my case I was having a problem when doing sass -- watch as you can see it now works

enter image description here

Upvotes: 10

Trinh Hieu
Trinh Hieu

Reputation: 805

This is the best way I've been able to fix it

It is as follows:

  1. First, Open PowerShell with Run as Administrator.

  2. Then, run this command in PowerShell

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

  3. After that type Y and press Enter.

  4. Reopen or Restart

  5. Done! working well!

Upvotes: 9

Mohammad Atif Aftab
Mohammad Atif Aftab

Reputation: 1051

  1. close your current command prompt or vs code (terminal)
  2. open PowerShell in Admin mode
  3. run this command inside PowerShell

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

  1. answer Y or A (if you want to give access to all users)

  2. now open command prompt or vs code or whatever you like to run your project

Upvotes: 16

Golden appendages
Golden appendages

Reputation: 116

This one need to be used in every shell:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

Upvotes: 5

DevThiman
DevThiman

Reputation: 1138

For Windows 11 go to

system settings -> Privacy & Security -> Choose For Developers tile under Security -> Scroll down to Powershell.

enter image description here

By default the checkbox is checked. If you want to set that click Apply and it set the execution policy to Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser. Then checkbox and Apply button get disabled.

If you want to change the policy again, need to run the Powershell as an Administrator and execute the desired policy.

Sometimes you may not able to change the policy based on the scope and it might get below error.

For an example if you are try to set to the default policy using Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine you may get

enter image description here

To fix this you may need to follow fix-windows-powershell-updated-your-execution-policy-successfully, but the setting is overridden by a policy defined at a more specific scope or check answers in here. cannot change the Execution Policy

Upvotes: 4

Nisha Jain
Nisha Jain

Reputation: 757

I was getting this error:

 ng : File C:\Users\Nisha Jain\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

Just delete this file ng.ps1

   Path is : C:\Users\username\AppData\Roaming\npm\ng.ps1

It works fine for me.

Upvotes: 2

Tom
Tom

Reputation: 15011

This could be due to the current user having an undefined ExecutionPolicy.

In PowerShell as Administrator, you could try the following:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Upvotes: 1405

Open PowerShell in administrative mode and run the following command

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Upvotes: 8

Nitesh Sharma
Nitesh Sharma

Reputation: 19

Recently, I faced the same issue that running-scripts-is-disabled-on-this-system when I was trying to deploy an app on the netlify

Below cmd worked for me.

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

Upvotes: 0

Lei
Lei

Reputation: 528

go to system settings -> Update & Security -> For Developers -> PowerShell

apply the following option

enter image description here

Upvotes: 42

Ankit Kumar
Ankit Kumar

Reputation: 353

Open the windows powershell or cmd and just paste the following command. If it ask for further confirmation just enter YesSet-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

below should appear

`Execution Policy Change

The execution policy helps protect you from scripts that you do not trust. Changing the execution policy might expose you to the security risks described in the about_Execution_Policies help topic at https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): Yes PS C:\Users\Tessact01>`

Upvotes: -1

Bhadresh Patel
Bhadresh Patel

Reputation: 2050

Try this command in terminal(Visual Studio Code terminal or any IDE you are using) and problem will solve

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

note : don't change CurrentUser to your username

Upvotes: 68

Dayo Jaiye
Dayo Jaiye

Reputation: 1000

Paste this code in your terminal

(Visual Studio Code terminal or any IDE you are using)

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Press Enter

Enjoy :)

Upvotes: 12

Ibrahim khalil Shakik
Ibrahim khalil Shakik

Reputation: 257

Open VS Code terminal and run the following script:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Upvotes: 21

Mohd Yusuf
Mohd Yusuf

Reputation: 459

If you are using visual studio code:

  1. Open terminal
  2. Run the command: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
  3. Then run the command protractor conf.js

This is related to protractor test script execution related and I faced the same issue and it was resolved like this.

Upvotes: 45

Prabhath Withanage
Prabhath Withanage

Reputation: 242

Another solution is Remove ng.ps1 from the directory C:\Users%username%\AppData\Roaming\npm\ and clearing the npm cache

Upvotes: 12

dr Chandra Kant Sharma
dr Chandra Kant Sharma

Reputation: 699

The following three steps are used to fix Running Scripts is disabled on this System error

Step1 : To fix this kind of problem, we have to start power shell in administrator mode.

Step2 : Type the following command set-ExecutionPolicy RemoteSigned Step3: Press Y for your Confirmation.

Visit the following for more information https://youtu.be/J_596H-sWsk

Upvotes: 13

Harrish Selvarajah
Harrish Selvarajah

Reputation: 1873

Run this code in your powershell or cmd

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Upvotes: 61

akshay jain
akshay jain

Reputation: 85

open windows powershell in administrator mode and run the following command and its work VOILA!!

Set-ExecutionPolicy RemoteSigned

Upvotes: 7

Sunny
Sunny

Reputation: 2507

Open powershell in administrative mode and run the following command

Set-ExecutionPolicy RemoteSigned

Upvotes: 183

Nabeh Nabeh
Nabeh Nabeh

Reputation: 61

The PowerShell execution policy is default set to Restricted. You can change the PowerShell execution policies with Set-ExecutionPolicy cmdlet. To run outside script set policy to RemoteSigned.

PS C:> Set-ExecutionPolicy RemoteSigned Below is the list of four different execution policies in PowerShell

Restricted – No scripts can be run. AllSigned – Only scripts signed by a trusted publisher can be run. RemoteSigned – Downloaded scripts must be signed by a trusted publisher. Unrestricted – All Windows PowerShell scripts can be run.

Upvotes: 6

Related Questions