Como iniciar um processo não aumentado

Meu aplicativo é executado comorequestedExecutionLevel definido comohighestAvailable.

Como faço para executar um processo não elevado?

Eu tentei o seguinte, mas não funcionou:

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

Eu tentei os seguintes níveis de confiança para iniciar meu processo usando a API do Win32, mas nenhum deles funciona corretamente:

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

Se eu corrertskill foo do meu aplicativo elevado, ele reinicia foo com privilégios corretos.

O que eu preciso é uma solução na qual eu não precise especificar o nível de confiança. O processo deve começar com o nível de confiança correto automaticamente, assim como otskill reinicia a ferramentafoo.exe no nível de confiança correto. O usuário seleciona e executafoo.exe e assim pode ser qualquer coisa.

Se eu puder obter o nível de confiança de um processo de alguma forma, posso fazer isso facilmentefoo.exe é executado quando meu aplicativo pode capturar seu nível de confiança.

questionAnswers(2)

yourAnswerToTheQuestion