Windows 10 в командной строке программно выводит мусор для некоторых команд

У меня есть устаревшая программа winForms (работает на Windows 7 Embedded), которую мы пытаемся запустить на Windows 10. У нас есть простой процесс, в котором мы запускаем процесс командной строки cmd.exe и выполняем различные задачи. Одна задача - взаимодействовать с фильтром записи. WES7 использует ewfmgr, а windows 10 использует инструменты командной строки uwfmgr.

Чтобы интерпретировать результат, мы читаем вывод и принимаем решения на основе вывода.

Проблема в Windows 10, вывод не читается. Это только для

Пример простого кода:

private Process statusProcess = new Process();
private List<string> cmdOutput = new List<string>();

ProcessStartInfo cmdStartInfo = new ProcessStartInfo();
cmdStartInfo.FileName = @"C:\Windows\System32\cmd.exe";
cmdStartInfo.WorkingDirectory = @"C:\Dev";
cmdStartInfo.CreateNoWindow = true;
cmdStartInfo.UseShellExecute = false;
//Add Admin account details
cmdStartInfo.Domain = "Bla";
cmdStartInfo.UserName = "Admin";
cmdStartInfo.Password = securePwd;
cmdStartInfo.RedirectStandardOutput = true;
cmdStartInfo.RedirectStandardError = true;
cmdStartInfo.RedirectStandardInput = true;

statusProcess.StartInfo = cmdStartInfo;

statusProcess.ErrorDataReceived += cmd_Error;
statusProcess.OutputDataReceived += cmd_DataReceived;
statusProcess.EnableRaisingEvents = true;
statusProcess.Start();
statusProcess.BeginOutputReadLine();
statusProcess.BeginErrorReadLine();

//cmd_DataReceived Simple just add data
private void cmd_DataReceived(object sender, DataReceivedEventArgs e)
{
        cmdOutput.Add(e.Data);
}

Отправить команды с помощью

statusProcess.StandardInput.WriteLine("dir");

Если мы запускаем такие команды, как dir, мы получаем отличные результаты.

если мы запустим uwfmgr Get-Config Вывод uwfmgr Get-Config

Хотя эта команда отображает конфигурацию, команды set не работают, так что это не только проблема вывода, либо это?

Поток ошибок пуст, и я предполагаю, что поток ошибок работает, поскольку я могу получить ошибки по другим командам.

Кодовая страница установлена ​​на 437, и другие команды работают как положено, обратите внимание, что первая строка верна и имеет смысл.

Я пробовал разные подходы

  1. Я написал сценарий powershell и могу правильно вызвать его, но не могу пройти UAC (я думаю, что UAC, но мне отказано в доступе) в потоке ошибок, а также не уверен, как получить вывод из powershell

  2. Считается, что с помощью классов powershell из System.Management.Automation это может работать на W10, но возникают проблемы с WES7.

Мне интересно, почему вывод на дисплей так?

Я только что написал этот пост, и мне интересно, если меня не смущает безопасность, я собираюсь исследовать этот аспект.

Заранее спасибо, если у кого-то были какие-то указатели.

0 ответов

Другие вопросы по тегам