Gostaria de saber se é possível abrir automaticamente um arquivo em lotes como administrador quando você clica duas vezes no arquivo em lotes, porque os comandos precisam ser executados com direitos administrativos.
Nota: Eu já sei sobre a solução de clicar com o botão direito do mouse no arquivo e clicar em Run As Administrator
, mas essa não é uma solução automática.
windows-7
batch-file
Formiga
fonte
fonte
Respostas:
Sim, você pode executar um arquivo em lotes com direitos administrativos. Infelizmente, você não pode fazer isso diretamente do arquivo em lote. Você precisaria primeiro criar um atalho para esse arquivo em lotes e alterar as propriedades desse atalho para fazer isso funcionar.
Para criar um atalho, existem várias maneiras, mas a maneira mais simples e rápida é usar a opção Enviar para no menu de contexto.
Claro que você pode enviar o atalho para onde quiser. Para elevar o arquivo em lotes para execução como administrador, siga as etapas abaixo:
fonte
if "%~1" == "" start %USERPROFILE%\Desktop\Shortcut.lnk && GOTO :EOF
logo abaixo@echo off
e criaria o link de atalho para emprogram.bat a
vez de apenasprogram.bat
.Como postado em uma resposta por Ben Gripka a outra pergunta:
fonte
A resposta aceita realmente funciona. Mas descobri que no Windows 7, eu tinha que suportar a caixa de diálogo do UAC toda vez que o atalho era clicado. Este IMHO diminui significativamente o "automaticamente" nesta questão!
Então descobri que, na minha própria situação, o
.bat
arquivo em questão deve ser executado pelo Agendador de Tarefas. Nesse caso, marcar aRun with highest privileges
opção naGeneral
guia da tarefa cuida bem do problema. O.bat
é executado como administrador sem aborrecimentos.PS: Eu não sabia que não podia fazer upload de imagens nesta resposta, porque tenho uma bela captura de tela comigo agora! Ou posso?
fonte
no Windows 7
Crie um atalho para esse arquivo em lotes
Clique com o botão direito do mouse no arquivo de atalho
Clique no botão avançar para encontrar uma caixa de seleção para executar como administrador
Verifique a imagem abaixo
fonte
Você pode usar meu script Batch_Admin para elevar automaticamente o Administrador para uso em qualquer tipo de script próprio do Lote, ou BAT ou .CMD. Essa função garante o trabalho em um ambiente padrão, com ferramentas padrão e da mesma maneira em diferentes sistemas Windows. Ele usa vários comandos padrão e internos do Windows. Não use outros scripts externos. Ele pode ser usado para chamar qualquer programa como administrador, não apenas scripts como lote. Basta criar um pequeno script, que chama o programa que requer permissão Administartor. Coloque isso em qualquer pasta PATH de pesquisa (de% PATH%).
Para usá-lo, basta inserir a seguinte linha (exatamente como) em seu script de Lote pai, que deve ser executado como Administrador. É melhor fazer isso na parte superior do script pai e é melhor que primeiro, que será chamado ainda mais através do CALL, alguns sub-scripts (veja a explicação detalhada abaixo).
Isso pode ser inserido em qualquer script filho, chamado pela sintaxe CALL. Para exibir uma mensagem enquanto ela ainda não possui privilégios de administrador, por exemplo. por 5 segundos antes de chamar Batch_Admin, defina a variável "ShowAdminInfo" no número de segundos
Então, como funciona:
• Chama UAC.ShellExecute por meio do VBScript para obter permissões de usuário
• Lote executa o script, ou BAT ou CMD
• O chamador de script pode ter um espaço de nome longo incluído na chamada entre aspas
• Devolva todos os parâmetros de chamada que o script mestre passou na linha de comando, como se não houvesse transmissão da chamada e iniciasse algo do zero, também com caracteres especiais, como pontos de exclamação (!) E porcentagem (%), e também entre parênteses ()
• Mantém um local de script mestre se a chamada ocorreu no diretório em que esse script é o mestre
• Auxiliar exibe uma mensagem se definirmos a variável "ShowAdminInfo", por exemplo. por 5 segundos, o que pode impedir a passagem imediata dos direitos do administrador, fornecendo informações adicionais e a possibilidade de uma decisão informada. Exemplos de configurações que devem ser definidas: SET ShowAdminInfo = 5 Por padrão, como essa variável não está definida, ela não é exibida.
• O script também está chamando no caminho de pesquisa do sistema% PATH% e a partir de recursos de rede, como: \ Computer \ share \ test.bat
• Evita mal-entendidos ao escrever os arquivos auxiliares necessários quando o script chama vários Batch_Admin quase ao mesmo tempo. Ele usa o número aleatório de 1 a 100
• Mas o melhor é usá-lo no script pai. A transição para os direitos de administrador sempre exige que você execute o script completamente novamente, em uma nova janela, em um novo ambiente, sem recorrer às variáveis definidas anteriormente em nosso script e os valores dessas variáveis não passaram depois para chamar como administrador . Apenas o script será executado novamente.
Abaixo de um script completo Batch_Admin. Informações estendidas sobre isso estão no meu site.
Copie o seguinte texto no Bloco de Notas e salve-o em disco como: Batch_Admin.bat
fonte
Como alternativa, você pode criar um segundo arquivo em lotes, permitindo executar qualquer coisa como administrador, enquanto digita a senha do administrador apenas uma vez. A senha é salva em um token de autenticação e requer algum conhecimento real do computador.
fonte
Isso também funciona SOURCE: https://social.technet.microsoft.com/Forums/windows/en-US/bc8a4561-d97e-4339-9b1c-9b90e54a7f92/request-elevation-inside-cmdbatch-file
fonte
Você pode usar um utilitário de linha de comando
elevate
. (link para download - https://drive.google.com/open?id=0Bz7qe_olclTwVGZLUklFMHNxQ00 )fonte
É um exemplo para executar o bastão como administrador. Funciona para mim.
É assim:
fonte