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.

jwd
fonte

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

uSlackr
fonte
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 .

A. Hayes
fonte
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