Pergunta

Eu tenho uma configuração visual studio e projeto de implantação. Eu adicionei um script .cmd nele. O script precisa de privilégios de administrador para ser executado. Quando o usuário clica sobre o setup.exe, UAC solicita ao usuário permissões de administração. Então eu assumi que todos os processos criados e chamados dentro setup.exe será executado na capacidade de administração. Então eu fiz a configuração chamar meu aplicativo de console que contém o seguinte código.

ProcessStartInfo p1 = new ProcessStartInfo();
p1.UseShellExecute = true;
p1.Verb = "runas";
p1.FileName = "cmd.exe";
Process.Start(p1);

Assim que deveria ter trabalhado como ele é executado sob espaço administrador.

Eu quero correr cmd.exe através de classe c # processo como uma administrator.I'm executando o Windows Vista.

Eu tentei não funcionou! O que posso fazer?

Foi útil?

Solução

Tente executar o runas comando :

...

using System.Diagnostics;

...

string UserName = "user name goes here";
ProcessStartInfo p1 = new ProcessStartInfo();
  p1.FileName = "runas";
  p1.Arguments = String.Format("/env /u:{0} cmd", UserName);
Process.Start(p1);

...

(E eu não acho que você precisa de um UseShellExecute explícito)

Outras dicas

Apenas Tente isso, Isso funcionou para mim.

...

using System.Diagnostics;

...

ProcessStartInfo startInfo = new ProcessStartInfo();
  startInfo.UseShellExecute = true;            
  startInfo.Verb = "runas";
  startInfo.Arguments = "/env /user:" + "Administrator" + " cmd";
Process.Start(startInfo);

...

Ashutosh

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top