Cómo iniciar un proceso sin levantar

Mi aplicación se ejecuta comorequestedExecutionLevel ajustado ahighestAvailable.

¿Cómo ejecuto un proceso no habilitado?

Intenté lo siguiente pero no funcionó:

Process.Start(new ProcessStartInfo {FileName = "foo.exe", Verb = "open"})

He intentado los siguientes niveles de confianza para iniciar mi proceso utilizando la API de Win32, pero ninguno de ellos funciona correctamente:

0
1260: This program is blocked by group policy. For more information, contact your system administrator.

0x1000
The application was unable to start correctly (0xc0000142). Click OK to close the application. 

0x10000
Process starts then hangs

0x20000
All options are not available

0x40000
Runs as admin

Si corrotskill foo Desde mi aplicación elevada, reinicia foo con los privilegios correctos.

Lo que necesito es una solución en la que no tenga que especificar el nivel de confianza. El proceso debe comenzar con el nivel de confianza correcto automáticamente al igual que eltskill la herramienta se reiniciafoo.exe en el nivel de confianza correcto. El usuario selecciona y ejecutafoo.exe Y así puede ser cualquier cosa.

Si puedo obtener el nivel de confianza de un proceso de alguna manera, puedo hacerlo fácilmente ya quefoo.exe se ejecuta cuando mi aplicación puede capturar su nivel de confianza.

Respuestas a la pregunta(2)

Su respuesta a la pregunta