Ошибка «Файл не найден» при запуске system32 \ winsat.exe с помощью Process.Start ()

я пытаюсь запуститьСредство оценки системы Windows (winsat.exe) используя следующий код:

System.Diagnostics.Process WinSPro =
    new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo WinSSInfo = 
    new System.Diagnostics.ProcessStartInfo();
WinSSInfo.FileName = "cmd.exe";
WinSSInfo.Arguments = "/k winsat.exe";
WinSPro.StartInfo = WinSSInfo;
WinSPro.Start();

Этот код работает, если я вызываю только cmd.exe, и даже если я вызываю regedit.exe, он все равно работает. Тем не менее, когда я пытаюсь вызвать winsat.exe в качестве аргумента cmd.exe, это не удается. Командная строка показывает это:

'winsat.exe' is not recognized as an internal or external command, 
operable program or batch file.

Я пробовал несколько способов вызвать winsat.exe:

Звоните прямо, назначив"winsat.exe" вProcessStartInfo.FileName, Это терпит неудачу с:Win32ExceptionThe system cannot find the file specified

Как и выше, используя полный путь -@"c:\windows\system32\winsat.exe", Это терпит неудачу с той же самой ошибкой.

Запустите код как системный администратор. Это все еще не удается.

Вызовите winsat.exe как в закодированном примере. Это не удалось, как я объяснил ранее.

Это'Интересно, что командная строка, запускаемая из кода, может видеть только файлы .dll в каталоге c: \ windows \ system32.

Кто-нибудь есть идеи, почему winsat.exe не может быть запущен черезSystem.Diagnostics.Process? Есть ли ограничения, которые ямы неправильно поняли?

Спасибо,

Rex

Ответы на вопрос(2)

Ваш ответ на вопрос