Causar um pop-up do UAC a partir da linha de comando sem ferramentas personalizadas


8

No Win7, um usuário pode clicar com o botão direito do mouse em um programa e escolher 'Executar como administrador'. Você recebe um pop-up, mas não precisa digitar a senha do administrador.

Gostaria de obter a mesma funcionalidade, mas a partir da linha de comando - em particular, de dentro de um .batarquivo.

Estou ciente do runascomando interno, mas não encontrei uma maneira de usar isso que não acaba pedindo uma senha em algum momento.

Também estou ciente do Process.StartInfo.Verb = "runas";método, que faz exatamente o que eu quero, mas requer a criação de um aplicativo .NET personalizado.

Existe alguma maneira, usando apenas ferramentas internas de linha de comando no Win7, para fazer isso?


Atualização: Graças ao uSlackr, desenvolvi este comando:

powershell Start-Process cmd.exe -Verb RunAs

Claro, o cmd.exeé apenas um espaço reservado.

Respostas:


4

Você pode usar o cmdlet Start-Process no Powershell com o verbo RunAs. Mais aqui: http://technet.microsoft.com/en-us/library/dd347667.aspx


Perfeito, obrigado. Atualizei a pergunta com um exemplo de trabalho.
jwd

Qualquer equivalente no Windows XP?
precisa saber é o seguinte

O PowerShell está disponível para XP.
precisa saber é o seguinte

XP não tem UAC então a questão não é relevante para ele
nponeccop

@nponeccop Suponho que a motivação para querer executar no Windows XP é permitir que um único script seja executado no Windows 7 e no Windows XP, sem um caminho para o Windows 7 que possua PowerShell e UAC e um segundo para o Windows XP que não tenha PowerShell e sem UAC.
Damian Yerrick

1

Basta executar o cmd.exe como administrador.

O atalho de teclado para isso é [shift] + [enter] depois de selecionar a linha de comando no menu Iniciar. Uma janela do UAC deve aparecer.

OU

Execute tudo como administrador

Não é recomendado para o uso diário, mas também existe uma conta de administrador integrada que você pode ativar no Windows que simplesmente executará todos e quaisquer aplicativos como root. Em um cmd administrativo:

net user administrator /active:yes

Altere para '/ active: no' se desejar desativar a conta. Uma breve introdução aqui .


Em relação à sua primeira sugestão: Desculpe, eu não estava claro. Eu quero fazer isso de dentro de um arquivo .bat (pergunta atualizada).
jwd

Em relação à sua segunda sugestão: executei isso e obtive "Erro no sistema 5. Acesso negado".
jwd

Mesmo executando o cmd.exe como administrador?
A.Yayes

11
O ponto principal desta pergunta é que estou executando este comando como um usuário não administrador e desejo elevar temporariamente as permissões.
Jwd 5/05
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.