Yo sé cómo poner en marcha un proceso con privilegios de administrador de un proceso usando:¿Cómo de-elevar los privilegios de un proceso hijo
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
donde proc es un System.Diagnostics.Process. Pero, ¿cómo hace uno lo opuesto?
Si el proceso en el que se encuentra ya es elevado, ¿cómo inicia el nuevo proceso sin privilegios de administrador? Más exactamente, tenemos que iniciar el nuevo proceso con el mismo nivel de permiso que Windows Explorer, por lo que no hay cambios si UAC está deshabilitado, pero si UAC está habilitado, pero nuestro proceso se está ejecutando elevado, tenemos que realizar una determinada operación sin elevación porque estamos creando una unidad virtual y si se crea con permisos elevados y el explorador de Windows se está ejecutando sin importancia, no aparecerá.
Siéntase libre de cambiar el título a algo mejor, no pude encontrar una buena descripción.
La misma pregunta: http://stackoverflow.com/questions/196949/how-to-run-not-elevated-in-vista-net La respuesta parece aterradora debido a h. – weiqure
No solo da miedo, no es correcto. La elevación de UAC es de una sola manera y no hay forma documentada de volver atrás (Inyectar en explorer.exe o usar el Programador de tareas es bastante chulo y probablemente no sea una buena idea) – Anders