ProcessStartInfo processInfo = new ProcessStartInfo(); processInfo.Verb = "runas"; processInfo.FileName = Application.ExecutablePath; Process.Start(processInfo);
Y salimos del programa sin hacer nada más, de esta manera ejecutamos nuestro propio programa de nuevo con permisos de administrador.
(Publicado originalmente en el grupo .NET España de LinkedIn por Alejandro Carracedo)