Ошибка «Файл не найден» при запуске 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
, Это терпит неудачу с:Win32Exception
The system cannot find the file specified
Как и выше, используя полный путь -@"c:\windows\system32\winsat.exe"
, Это терпит неудачу с той же самой ошибкой.
Запустите код как системный администратор. Это все еще не удается.
Вызовите winsat.exe как в закодированном примере. Это не удалось, как я объяснил ранее.
Это'Интересно, что командная строка, запускаемая из кода, может видеть только файлы .dll в каталоге c: \ windows \ system32.
Кто-нибудь есть идеи, почему winsat.exe не может быть запущен черезSystem.Diagnostics.Process
? Есть ли ограничения, которые ямы неправильно поняли?
Спасибо,
Rex