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

Respuestas a la pregunta(2)

Su respuesta a la pregunta