Executando o arquivo bat na inicialização como administrador no Windows 7


37

No momento, estou executando um script de inicialização na forma de um arquivo bat com êxito no Windows 7 (inseri uma nova entrada de chave de registro com o caminho do arquivo bat como valor em

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run).

Agora eu preciso executar outro arquivo bat na inicialização, mas com direitos elevados (como administrador) e sem confirmar manualmente um prompt.

Como posso conseguir isso, preferencialmente sem programas externos?


Este tem uma solução? serverfault.com/questions/429364/…
Radek

Estou confuso. A capacidade de ignorar o prompt do UAC não é uma grande preocupação de segurança? Isso não anula o propósito do prompt que existe?
Kyle Delaney

Respostas:


24

Veja este artigo: Faça o Vista iniciar programas restritos ao UAC na inicialização do Agendador de tarefas .

Este artigo mostra como usar o Agendador de tarefas para iniciar programas de inicialização com privilégios elevados. Algumas pequenas alterações podem ser necessárias no seu caso, mas o artigo está bem escrito com capturas de tela.


3
Seria bom se isso não fosse apenas um link. :)
Ƭᴇcʜιᴇ007

1
@ Ƭᴇcʜιᴇ007: Existem muitos tutoriais completos para este procedimento conhecido, ainda válido hoje desde o Vista. Essa é uma resposta muito antiga e provavelmente eu teria respondido com mais detalhes hoje, mas também não tenho certeza se concordo com a tendência mais recente do SU de insistir em longas respostas do tipo tutorial. Nem toda resposta precisa ser um mini-tutorial, e essa resposta descreve o princípio e o link é para um site sólido.
harrymc

2
Eu sinto que isso pode se tornar uma batalha de titãs! Mas, na verdade, eu concordo com @ Ƭᴇcʜιᴇ007 sobre isso: os links são bons, mas podem ficar ruins, tornando uma resposta como essa sem sentido no futuro.
Music2myear

1
@ music2myear: A consulta do Google tem cerca de 369.000 resultados! Muitos são de uma qualidade muito melhor do que eu poderia / faria.
precisa

2
Então, em vez de postar uma "resposta" que é essencialmente apenas um lmgtfy, você poderia ter postado um link para a consulta do Google como comentário à resposta original. Mas então, você não recebe representante por postar comentários, agora é?
Synetech

4

Faça dois arquivos em lote:

StartAs.bat contém algo como:

runas /user:SomeLocalAdminAccount c:\Users\MyUser\StartupWhat.bat

StartWhat.bat contém os comandos que você deseja executar.


1
Ainda pede que o arquivo ser executado com priveledges elevados
Joe Taylor

3

Você já pensou em uma abordagem diferente? Uma diretiva de grupo pura para a configuração de registro equivalente, além de definir o arquivo em lotes para execução como uma diretiva de grupo. Talvez você possa até executá-lo como um script de computador, em vez de um script de usuário.

Comece com gpedit.msc. No entanto, ele precisa do Ultimate ou de uma das outras edições de ponta.


2

Utilitário AutoExnt, do Resource Kit.

O serviço AutoExNT permite que um administrador configure um computador com Windows para executar um arquivo em lotes personalizado ao iniciar o computador pela primeira vez. Além disso, não é necessário que um usuário ou administrador esteja conectado no momento em que esse arquivo em lote personalizado é executado.


2

hstart.exe - substituição do start.exe de terceiros em http://www.ntwind.com/software/hstart.html

A invocação é um pouco dolorosa, mas funciona muito bem.


Tenha cuidado ao recomendar software. Como está escrito, sua resposta pode ser vista como spam. Sua resposta deve incluir uma descrição do software e como ele aborda a questão. Mais informações: Como recomendo o software nas minhas respostas?
bwDraco

Obrigado, mas não, obrigado. Não considero minha responsabilidade se as pessoas assumem falsamente coisas incorretas devido ao seu próprio pessimismo e amargura. Eu tive esse problema, e essa foi minha solução.
ClioCJS 3/10

1

runas / usuário: SomeLocalAdminAccount

Aqui deve ser assim:

runas /noprofile /user:mymachine\administrator cmd

runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc

runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""

1
Ainda pede que o arquivo ser executado com priveledges elevados
Joe Taylor

1

Talvez o UACPass (gratuito) o resolva:

  • Instale o programa.
  • Abra a janela UACPass.
  • Arraste para ele o programa que você está pretendendo executar na inicialização.

Feito. Este programa agora deve ser executado como administrador sem aviso do UAC.
O programa ainda tem uma opção para add to startup:-D.

Seu programa será executado somente após o logon (ou pelo menos eu acho).


-1

Você também pode criar um atalho e especificar que o arquivo do atalho deve ser executado elevado.

(Está em algumas caixas de opções avançadas.)


Isso não funciona para atalhos para arquivos bat. Tente.
Joe Taylor

@ JoeTaylor E que tal criar um atalho para o cmd.exe e fornecer o arquivo bat no cmdline?
Werner Henze #

@ werner Henze - você já experimentou?
Joe Taylor

@ JoeTaylor: Isso não funciona para atalhos para arquivos bat. O que exatamente você quer dizer com isso? A caixa de seleção "executar como administrador" está disponível para atalhos para um arquivo bat e para atalhos para cmd.exe (ambos testados há alguns minutos). Mas: o interlocutor não deseja o prompt do UAC e a caixa de seleção Dispara o prompt do UAC (dependendo das configurações do UAC).
Werner Henze

A execução é elevada, mas a supressão das solicitações do UAC não funciona da maneira que a resposta pretende. Foi isso que eu quis dizer. Portanto, não é a resposta que o OP estava procurando.
Joe Taylor
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.