Executar .bat com permissão de administrador
28/11/2018
0
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
Curtir tópico
+ 0
Responder
Posts
01/12/2018
Vinicius Cavagnolli
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++]).
Responder
Clique aqui para fazer login e interagir na Comunidade :)