Próbuję uruchomić powershell
skrypt z poziomu C #.
Najpierw ustawiłem wartość ExecutionPolicy
na, Unrestricted
a skrypt jest teraz uruchamiany z PowerShell ISE
.
Teraz to jest C # mój kod:
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);
}
}
}
A wynik to:
Nie można załadować ps1, ponieważ uruchamianie skryptów jest wyłączone w tym systemie. Więcej informacji można znaleźć pod adresem about_Execution_Policies pod adresem http://go.microsoft.com/fwlink/?LinkID=135170 .
c#
powershell
user979033
źródło
źródło
Get-ExecutionPolicy -List
i edytuj swoje pytanie z wynikami. To polecenie pokaże różne zakresy i ich ustawienia ExecutionPolicy.Odpowiedzi:
Może to być spowodowane tym, że aktualny użytkownik ma undefined
ExecutionPolicy
.Możesz spróbować następujących rzeczy:
źródło
Powershell
cmd systemu Windows, a nie w cmd.Unrestricted
oznacza, że możesz uruchomić wszystkie skrypty. Inną opcją byłoby ustawienie zasad wykonywania naRemoteSigned
taką, na jaką pozwala,Allow local scripts and remote signed scripts
ale w zależności od aplikacji i tego, co robi, może nadal powodować ten sam błąd. Myślę, że Twoje podejście jest uzasadnione w zakresie bezpieczeństwa i zawsze możesz przeczytać, jakie zasady są przed jej użyciemGet-ExecutionPloicy
. Chociaż to powiedziane, zakres jest aktualnym użytkownikiem, więc moim zdaniem ryzyko jest niewielkie. Mam nadzieję, że to pomoże.Otwórz PowerShell w trybie administracyjnym i uruchom następujące polecenie
źródło
Uruchom ten kod w programie PowerShell lub cmd
źródło
Jeśli używasz kodu Visual Studio:
Jest to związane z wykonywaniem skryptu testowego kątomierza i napotkałem ten sam problem i został on rozwiązany w ten sposób.
źródło
Poniższe trzy kroki służą do naprawienia opcji Uruchomione skrypty są wyłączone w przypadku tego błędu systemu
Krok 1: Aby rozwiązać tego rodzaju problem, musimy uruchomić powłokę zasilania w trybie administratora.
Krok 2: Wpisz następujące polecenie set-ExecutionPolicy RemoteSigned Krok 3: Naciśnij klawisz Y, aby potwierdzić.
Odwiedź poniższe, aby uzyskać więcej informacji, https://youtu.be/J_596H-sWsk
źródło
Zasady wykonywania programu PowerShell są domyślnie ustawione na Ograniczone. Zasady wykonywania programu PowerShell można zmienić za pomocą polecenia cmdlet Set-ExecutionPolicy. Aby uruchomić poza skryptem, ustaw zasady na RemoteSigned.
PS C:> Set-ExecutionPolicy RemoteSigned Poniżej znajduje się lista czterech różnych zasad wykonywania w PowerShell
Ograniczone - nie można uruchamiać żadnych skryptów. AllSigned - można uruchamiać tylko skrypty podpisane przez zaufanego wydawcę. RemoteSigned - pobrane skrypty muszą być podpisane przez zaufanego wydawcę. Bez ograniczeń - można uruchomić wszystkie skrypty programu Windows PowerShell.
źródło
otwórz Windows PowerShell w trybie administratora i uruchom następujące polecenie i jego pracę VOILA !!
źródło
Innym rozwiązaniem jest usunięcie ng.ps1 z katalogu C: \ Users% username% \ AppData \ Roaming \ npm \ i wyczyszczenie pamięci podręcznej npm
źródło
Myślę, że możesz użyć PowerShell w trybie administracyjnym lub w wierszu polecenia.
źródło