Para executar uma aplicação win forms como administrador sempre que iniciar basta chamar este metodo no arquivo Program ou aonde estiver seu metodo Main da aplicação:
static void RunAsAdministrator() { ProcessStartInfo proc = new ProcessStartInfo(); proc.UseShellExecute = true; proc.WorkingDirectory = Environment.CurrentDirectory; proc.FileName = Application.ExecutablePath; proc.Verb = "runas"; try { Process.Start(proc); } catch { // The user refused the elevation. // Do nothing and return directly ... return; } Application.Exit(); }
No main é interessante colocar esse pedaço de código assim você garante que o sistema já não está endo executado com privilégios de administrador
WindowsIdentity wi = WindowsIdentity .GetCurrent(); WindowsPrincipal wp = new WindowsPrincipal(wi); bool isAdministrator = wp.IsInRole(WindowsBuiltInRole .Administrator); if (!isAdministrator) { RunAsAdministrator(); }