Executar .bat com permissão de administrador
Boa tarde, queria chamar um .bat através de uma aplicação c#, mas eu queria executar esse bat como administrador já passando usuário e senha no meu código.
o código está assim hoje.
ProcessStartInfo proc = new ProcessStartInfo();
proc.UseShellExecute = true;
proc.WorkingDirectory = Environment.CurrentDirectory;
proc.FileName = @"\\\\zeus\\ATUALIZACAO\\Sistemas Cardio Nefron\\Aplicação\\Cardio1.bat";
o código está assim hoje.
ProcessStartInfo proc = new ProcessStartInfo();
proc.UseShellExecute = true;
proc.WorkingDirectory = Environment.CurrentDirectory;
proc.FileName = @"\\\\zeus\\ATUALIZACAO\\Sistemas Cardio Nefron\\Aplicação\\Cardio1.bat";
Antonio Oliveira
Curtidas 0
Respostas
Vinicius Cavagnolli
28/11/2018
Fala Antonio,
Se o aplicativo C# já estiver rodando como administrador, para iniciar o .bat/.cmd com elevação, é só adicionar a propriedade Verb = "runas" do objeto ProcessStartInfo.
Aí se as notificações do UAC estiverem configuradas para sempre notificar, vai ser aberto o diálogo do UAC (caso o usuário negar, ele levanta uma exceção). Senão ele executará com a conta de administrador que iniciou o aplicativo C# (lembrando que se a máquina não estiver logada com um usuário que é administrador, não tem como iniciar assim pelo C# [dá pra fazer em C/C++]).
Se o aplicativo C# já estiver rodando como administrador, para iniciar o .bat/.cmd com elevação, é só adicionar a propriedade Verb = "runas" do objeto ProcessStartInfo.
proc.Verb = "runas";
Aí se as notificações do UAC estiverem configuradas para sempre notificar, vai ser aberto o diálogo do UAC (caso o usuário negar, ele levanta uma exceção). Senão ele executará com a conta de administrador que iniciou o aplicativo C# (lembrando que se a máquina não estiver logada com um usuário que é administrador, não tem como iniciar assim pelo C# [dá pra fazer em C/C++]).
GOSTEI 0