"Datei nicht gefunden" Fehler beim Starten von system32 \ winsat.exe mit Process.Start ()

Ich versuche das zu leitenWindows-Systembewertungstool (winsat.exe) mit dem folgenden Code:

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();

Dieser Code funktioniert, wenn ich nur cmd.exe aufrufe, und selbst wenn ich regedit.exe aufrufe, funktioniert er immer noch. Wenn ich jedoch versuche, winsat.exe als Argument von cmd.exe aufzurufen, schlägt dies fehl. Die Eingabeaufforderung zeigt Folgendes:

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

Ich habe versucht, winsat.exe auf verschiedene Arten aufzurufen:

Rufen Sie es direkt durch Zuweisen auf"winsat.exe" zuProcessStartInfo.FileName. Es scheitert mit einemWin32Exception: The system cannot find the file specified

Wie oben, mit dem vollen Pfad -@"c:\windows\system32\winsat.exe". Es schlägt mit demselben Fehler fehl.

Führen Sie den Code als Systemadministrator aus. Es schlägt immer noch fehl.

Rufen Sie winsat.exe wie im codierten Beispiel auf. Es ist fehlgeschlagen, wie ich zuvor erklärt habe.

Es ist interessant, dass die vom Code aus gestartete Eingabeaufforderung nur DLL-Dateien in c: \ windows \ system32 anzeigen kann.

Hat jemand eine Idee, warum winsat.exe nicht über gestartet werden kannSystem.Diagnostics.Process? Gibt es irgendwelche Einschränkungen, die ich falsch verstanden habe?

Vielen Dank,

Rex

Antworten auf die Frage(2)

Ihre Antwort auf die Frage