Evite iniciar o explorer no UAC-elevate a program from shell

1

Sou membro do grupo de administradores no Windows 7. Preciso executar foo.exe de um Cmd ou Powershell. O arquivo exe requer elevação para funcionar, mas a elevação não é especificada em seu manifesto.

Normalmente eu tenho que fazer start . para abrir o Explorer, clique com o botão direito do mouse no exe e selecione Executar como administrador.

Existe um caminho mais fácil? Eu não vou desligar o UAC, não quero ter senhas lembradas por senha ou evitar o prompt. Eu só quero evitar a necessidade de iniciar a janela do Explorer.

Sou membro do grupo de administradores. Eu não quero correr como outro usuário, eu só quero ver o prompt do UAC sem senha que eu vejo quando eu mesmo quando clicando com o botão direito no Explorer, mas sem abrir o explorador, executando ferramentas de terceiros, desabilitando o UAC, capacidade de fazer o mesmo de scripts ou lembrando credenciais.

Eu só quero chamar o prompt usual do UAC sem uma etapa intermediária.

Para esclarecer, quero a seguinte sequência:

  1. Windows 7, UAC ativado, estou no grupo de administradores, o prompt do UAC está configurado para responder sim / não.

  2. Abra um prompt de comando não elevado e navegue até uma pasta profunda e faça outras tarefas.

  3. Eu executo 'elevate-command-sequence foo.exe' e um prompt do UAC é aberto exatamente da mesma maneira que é aberto quando clico com o botão direito no Explorer. O diretório atual do foo.exe está definido para a pasta profunda em que estou.

Gostaria de saber se existe elevate-command-sequence em cmd ou powershell fora da caixa.

    
por nponeccop 11.09.2013 / 15:34

3 respostas

0

A pergunta é razoavelmente respondida aqui: link

powershell Start-Process cmd.exe -Verb RunAs

Of course, the cmd.exe is just a placeholder.

    
por 06.12.2014 / 02:25
2

O prompt de comando não pode inicializar nativamente aplicativos elevados se ele próprio não tiver sido iniciado em um estado elevado. É uma droga, mas é apenas parte do comportamento do Windows.

Se você quiser contornar isso, você deve usar uma ferramenta de terceiros que irá lançar o programa elevado para você. A partir de um rápido googling eu encontrei ELE , isso permitirá que você execute um programa em um estado elevado de um não prompt de comando elevado (depois de um UAC aparecer, é claro)

c:\>ele foo.exe  

Tenho certeza de que existem mais um milhão de programas que fazem isso, diabos eu poderia escrever um em C # aqui nesta resposta.

namespace Sandbox_Console
{
    public class Program
    {

        private static void Main(string[] args)
        {
            Process newProcess = new Process();
            newProcess.StartInfo.Verb = "runas";
            newProcess.StartInfo.WorkingDirectory = Environment.CurrentDirectory;
            newProcess.StartInfo.FileName = args[0];
            newProcess.StartInfo.Arguments = String.Join(" ", args, 1, args.Length - 1);
            newProcess.Start();
        }
    }
}

Agora, esse código é muito frágil e não pode manipular coisas como espaços em argumentos agora, mas não seria difícil adicionar.

    
por 11.09.2013 / 17:06
1

Talvez essa política de grupo "Como alterar" possa ajudar você:

  1. Iniciar - > run - > gpedit.msc

  2. Navegue para Computer Configuration --> Policies-->Windows Settings-->Security Settings -->Local Policies-->Security Options

3.Altere o behavior of elevation prompt for administrator (você pode derivar como quiser)

Reinicie o computador para efetuar alterações

    
por 11.09.2013 / 16:07