none
Executar .bat com permissão de administrador RRS feed

  • Pergunta

  • 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";
    quarta-feira, 28 de novembro de 2018 16:58

Todas as Respostas

  • Boa tarde,

    o seu proc deve ter os atributos UserName e Password, verifique se setando essas propriedades com as credenciais do administrador resolve seu problema

    proc.UserName = "";
    proc.Password = ;

    quarta-feira, 28 de novembro de 2018 17:06
  • Boa tarde Paulo.

    criei o o secureString mas o bat não abriu.

    SecureString pass = new SecureString();
                pass.AppendChar('R');
                pass.AppendChar('2');
                pass.AppendChar('m');
                pass.AppendChar('1');
                pass.AppendChar('L');
                pass.AppendChar('2')...
    
    // Depois tentei passar.
    
    ProcessStartInfo proc = new ProcessStartInfo();
                    proc.UseShellExecute = true;
                    proc.WorkingDirectory = Environment.CurrentDirectory;
                    proc.FileName = @"\\zeus\ATUALIZACAO\Sistemas Cardio Nefron\Aplicação\Cardio1.bat";
                    proc.Verb = "runas";
                    proc.UserName = "administrador";
                    proc.Password = pass;


    quarta-feira, 28 de novembro de 2018 18:58
  • Creio que faltou o proc.Start();
    quarta-feira, 28 de novembro de 2018 19:21
  • Me perdoe Paulo. Me esqueci de mandar a parte de baixo, mas tem sim o start , porem não abre, mas quando comento o proc.usernaeme e proc.password o bat abre só que sem a permissão de adm

    quinta-feira, 29 de novembro de 2018 10:09
  • Bom dia Francisco, tente assim por favor:

    static void Main(string[] args)
    		{
    
    
    			Process processo = new Process();
    			processo.StartInfo.FileName = @"C:\seuarquivo.bat";
    			processo.StartInfo.UserName = "usuarioAdm@Seudominio.local";
    			char[] senha = new char[] { 's', 'e', 'n', 'h', 'a', 'd', 'o', 'a', 'd', 'm' };
    			System.Security.SecureString senhaAdmin = new System.Security.SecureString();
    			foreach (char c in senha)
    			{
    				senhaAdmin.AppendChar(c);
    			}
    			processo.StartInfo.Password = senhaAdmin;
    			processo.StartInfo.UseShellExecute = false;
    			processo.Start();
    
    }

    quinta-feira, 29 de novembro de 2018 11:09