Открытие Windows Powershell через c # - PullRequest
1 голос
/ 01 апреля 2019

Я пытаюсь открыть Powershell с помощью кода C #, и в конечном итоге цель также состоит в том, чтобы писать командные строки через C # (без использования сценария powershell).

Я провел некоторые исследования и придумал этот фрагмент кода, но по какой-то причине он просто не открывает Powershell.Что мне нужно изменить в коде для открытия Powershell?

//Opening Powershell
private void Execute()
{
ProcessStartInfo startInfo = new ProcessStartInfo
{
FileName = @"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe",
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
};
Process pro = Process.Start(startInfo);
pro.WaitForExit();
Thread.Sleep(3000);
pro.Close();
}

1 Ответ

1 голос
/ 01 апреля 2019

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

startInfo.UseShellExecute = false;

так что одним рабочим примером будет

    static void Main(string[] args)
    {
        OpenPowerShell(@"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe");
    }

    static void OpenPowerShell(string path)
    {
        ProcessStartInfo startInfo = new ProcessStartInfo(path);
        startInfo.UseShellExecute = false;
        startInfo.EnvironmentVariables.Add("RedirectStandardOutput", "true");
        startInfo.EnvironmentVariables.Add("RedirectStandardError", "true");
        startInfo.EnvironmentVariables.Add("UseShellExecute", "false");
        startInfo.EnvironmentVariables.Add("CreateNoWindow", "true");
        Process.Start(startInfo);
    }

Или, если у вас все в порядке с другим окном, просто:

    static void Main(string[] args)
    {
        OpenPowerShell(@"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe");
    }

    static void OpenPowerShell(string path)
    {
        Process.Start(path);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...