Политика выполнения PowerShell установлена, но не распознана при вызове из программы .Net - PullRequest
0 голосов
/ 14 мая 2018

Я создал небольшую программу в Visual Studio - форму с кнопкой для запуска программы при нажатии - и создал .exe.

Эта программа должна открывать PowerShell и запускать файл ps1.

Когда я запускаю его из VS в режиме отладки, он работает, как и ожидалось, без проблем запуская скрипт ps1.Когда я собираю проект и запускаю exe-файл от имени администратора, он на короткое время открывает PowerShell, но сразу же закрывается.

В выходном файле указано, что выполнение сценариев в этой системе отключено, хотя это неправильно, поскольку я могу запуститьлюбое количество сценариев PowerShell вручную, щелкнув их правой кнопкой мыши и запустив их с помощью PowerShell.

Я пытался изменить политику выполнения с подписанного на AllSigned, а также без ограничений, но это не помогло.

Вот мой код:

    if (File.Exists("LiveSiteTests.ps1"))
        {
            File.GetAttributes("LiveSiteTests.ps1");
            string strCmdText =       Path.Combine(Directory.GetCurrentDirectory(), "LiveSiteTests.ps1");
            var process = new Process();

            process.StartInfo.UseShellExecute = false;
            process.StartInfo.RedirectStandardOutput = true;
            process.StartInfo.FileName = @"C:\windows\system32\windowspowershell\v1.0\powershell.exe";
            process.StartInfo.Arguments = "\"&'" + strCmdText + "'\"";


            process.Start();
            string s = process.StandardOutput.ReadToEnd();
            process.WaitForExit();

            using (StreamWriter outfile = new      StreamWriter("StandardOutput.txt", true))
            {
                outfile.Write(s);
            }

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...