Error "Archivo no encontrado" al iniciar system32 \ winsat.exe usando Process.Start ()
Estoy tratando de ejecutar elHerramienta de evaluación del sistema de Windows (winsat.exe) usando el siguiente código:
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();
Este código funciona si solo llamo a cmd.exe, e incluso si llamo a regedit.exe, todavía funciona. Sin embargo, cuando trato de llamar a winsat.exe como un argumento de cmd.exe, falla. El símbolo del sistema muestra esto:
'winsat.exe' is not recognized as an internal or external command, operable program or batch file.
He intentado varias formas de llamar a winsat.exe:
Llámalo directamente asignando"winsat.exe"
aProcessStartInfo.FileName
. Falla con unaWin32Exception
: The system cannot find the file specified
Como arriba, usando la ruta completa -@"c:\windows\system32\winsat.exe"
. Falla con el mismo error.
Ejecute el código como administrador del sistema. Todavía falla.
Llame a winsat.exe como en el ejemplo codificado. Falló como expliqué anteriormente.
Es interesante que el símbolo del sistema iniciado desde el código solo pueda ver los archivos .dll en c: \ windows \ system32.
¿Alguien tiene alguna idea de por qué winsat.exe no se puede iniciar a través deSystem.Diagnostics.Process
? ¿Hay alguna limitación que he entendido mal?
Gracias,
Rex