Я знаю, как запустить процесс с правами администратора из процесса, используя:
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.Verb = "runas";
где proc - System.Diagnostics.Process. Но как делать наоборот?
Если процесс, в котором вы находитесь, уже повышен, как вы запускаете новый процесс без прав администратора? Более точно, нам нужно запустить новый процесс с тем же уровнем разрешений, что и проводник Windows, поэтому никаких изменений, если UAC отключен, но если UAC включен, но наш процесс работает повышенным, нам необходимо выполнить определенную операцию un-elevated потому что мы создаем виртуальный диск, и если он создан с повышенными разрешениями, а проводник Windows работает без изменений, он не будет отображаться.
Не стесняйтесь менять заголовок на что-то лучшее, я не мог найти хорошего описания.