Я пытаюсь запустить powershell скрипт из c #.

Сначала я установил ExecutionPolicy на Unrestricted, и теперь скрипт запускается из PowerShell ISE.

Теперь это С # мой код:

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 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);
        }
    }
}

И вывод:

ps1 не может быть загружен, потому что запуск скриптов отключен на этом система. Для получения дополнительной информации см. About_Execution_Policies по адресу http://go.microsoft.com/fwlink/?LinkID=135170.

user979033

Ответов: 16

Ответы (16)

Это может быть связано с тем, что текущий пользователь имеет неопределенное значение ExecutionPolicy.

Вы можете попробовать следующее:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Запустите этот код в PowerShell или cmd

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Другое решение - удалить ng.ps1 из каталога C: \ Users% username% \ AppData \ Roaming \ npm \ и очистить кеш npm

откройте Windows PowerShell в режиме администратора и выполните следующую команду, и ее работа VOILA !!

Set-ExecutionPolicy RemoteSigned

  1. закройте текущую командную строку или код vs (терминал)

  2. открыть PowerShell в режиме администратора

  3. запустите эту команду внутри PowerShell Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

  4. ответьте Y или A (если вы хотите предоставить доступ всем пользователям)

  5. теперь откройте командную строку или код vs или что угодно, чтобы запустить свой проект

Для политики выполнения PowerShell по умолчанию установлено значение «Ограничено». Вы можете изменить политики выполнения PowerShell с помощью командлета Set-ExecutionPolicy. Для запуска внешнего сценария установите для политики значение RemoteSigned.

PS C:> Set-ExecutionPolicy RemoteSigned Ниже приведен список из четырех различных политик выполнения в PowerShell

.

Restricted - скрипты не могут быть запущены. AllSigned - можно запускать только сценарии, подписанные доверенным издателем. RemoteSigned - загруженные скрипты должны быть подписаны доверенным издателем. Без ограничений - можно запускать все сценарии Windows PowerShell.

Следующие три шага используются для исправления того, что Запуск скриптов отключен при этой системной ошибке

Шаг 1: Чтобы решить эту проблему, мы должны запустить Power Shell в режиме администратора.

Шаг 2. Введите следующую команду set-ExecutionPolicy RemoteSigned. Шаг 3: Нажмите Y для подтверждения.

Посетите следующую для получения дополнительной информации https://youtu.be/J_596H-sWsk

Если вы используете код Visual Studio:

  1. Открыть терминал
  2. Выполните команду: Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted
  3. Затем запустите команду protractor conf.js

Это связано с выполнением скрипта тестирования транспортира, и я столкнулся с той же проблемой, и она была решена следующим образом.

Я думаю, вы можете использовать PowerShell в административном режиме или в командной строке.

Открыть powershell в административном режиме и выполните следующую команду

Set-ExecutionPolicy RemoteSigned

Откройте терминал VS Code и запустите следующий скрипт:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Попробуйте эту команду в терминале (терминал Visual Studio Code или любой IDE, которую вы используете), и проблема будет решена

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser

примечание: не меняйте CurrentUser на свое имя пользователя

powershell Set-ExecutionPolicy -Scope "CurrentUser" -ExecutionPolicy "RemoteSigned"

window + r и вставьте эту команду, чтобы решить проблему скрипта на машинах Windows

Ура ....

Откройте Windows PowerShell или cmd и просто вставьте следующую команду. Если он запрашивает дополнительное подтверждение, просто введите YesSet-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

внизу должно появиться

`Execution Policy Change

Политика выполнения помогает защитить вас от скриптов, которым вы не доверяете. Изменение политики выполнения может привести к ознакомьтесь с рисками безопасности, описанными в разделе справки about_Execution_Policies по адресу https: /go.microsoft.com/fwlink/? LinkID = 135170. Вы хотите изменить политику выполнения? [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию «N»): Да PS C: \ Users \ Tessact01> `

зайдите в настройки системы -> Обновление и безопасность -> Для разработчиков -> PowerShell

примените следующую опцию

enter image description here

Вставьте этот код в свой терминал

(терминал Visual Studio Code или любая используемая IDE)

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted

Нажмите Enter

Наслаждайтесь :)

2022 WebDevInsider