.NET: Rodar um executável externo como Administrador

Certas vezes é necessário rodar um executável externo com os direitos de Administrador. Pode ser algum utilitário do Windows como a Restauração do Sistema, um módulo separado do nosso aplicativo, e etc.

A metodologia é simples:

C#:

var rstrui = new System.Diagnostics.ProcessStartInfo();
rstrui.FileName = "rstrui.exe";
rstrui.UseShellExecute = true;
rstrui.Verb = "runas"; //O segredo é esta linha!
rstrui.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Windows);
System.Diagnostics.Process.Start(rstrui);

VB.NET:

Dim rstrui As New System.Diagnostics.ProcessStartInfo()
rstrui.FileName = "rstrui.exe"
rstrui.UseShellExecute = True
rstrui.Verb = "runas" 'O segredo é esta linha!
rstrui.WorkingDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Windows)
System.Diagnostics.Process.Start(rstrui)

Basicamente, nós definimos o Verbo para runas que é o “comando” responsável por exigir os direitos de administrador na inicialização do aplicativo.
No caso, o código acima irá inicializar, com permissões de Administrador, o utilitário de restauração do sistema do Windows.

Anúncios

Deixe um comentário :)

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s