Я играл с этим. Может быть, есть и другие способы сделать это, но это тоже работает. Поскольку вам нужна начальная настройка, я думаю, вам нужно использовать 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);
}