Eu estou tentando descobrir como executar um programa que requer acesso de administrador para execução automática.
Alguns programas como DuMeter , Speedfan ou Ferramentas de Bandeja ATI requer acesso de administrador para interface com o hardware. Além disso, eles são tarefas em segundo plano que não seria necessário executar manualmente em cada inicialização, portanto, eles devem fazer parte da inicialização.
Eu olhei em volta e o mais próximo de uma solução que pude encontrar foi agendá-los como tarefas, mas isso não é bom porque não apenas atravessa a lista de tarefas, mas alguns programas precisam ser executados o mais rápido possível (por exemplo, monitore os bytes transferidos na NIC, para ajustar a velocidade da ventoinha ou defina as cores da área de trabalho e as taxas de atualização).
Eu considerei convertê-los para funcionar como serviços, mas isso parece desnecessariamente excessivo.
Existe uma maneira melhor de executar programas como administrador?
Obrigado.
Atualizar
Só para ficar claro, o método para elevar as tarefas de execução automática não deve exigir a entrada do usuário, como aceitar o prompt do UAC. Claro, pode-se desabilitar o UAC, mas isso obviamente não é o ideal.
fonte
Uma alternativa é usar PsExec da Microsoft - ele pode passar o nome de usuário e a senha para o comando que precisa ser executado.
fonte
A execução de um speedfan como tarefa agendada era uma ideia correta.
No windows 7 a tarefa pode ser programada não apenas pela data / hora, mas também pode ser executada com triggers.
Mas você precisa configurá-lo de maneira correta.
A maneira mais simples é copiar todas as configurações da tarefa autorun do Skype.
E também adicionei mais um gatilho para o cronograma de execução da tarefa: executar no logon. (Eu estou traduzindo as configurações do meu idioma. Então a tradução pode não ser exata como você vê na sua versão em inglês)
Aqui está as configurações:
"C:\Program Files (x86)\SpeedFan\speedfan.exe"
) e digite suas opções de linha de comando no campo à direita. Minhas opções são-minimize -nosmbscan
. Então clique Está bemfonte
Ok, eu descobri uma maneira de fazer isso sem também muito trabalho ou expor uma senha no Claro .
Primeiro, você precisa ativar a conta de administrador. Essa é a parte mais inconveniente. Eu configurei minha conta normal para login automático, mas é irritante que a conta de administrador esteja disponível na tela de login, mesmo que eu nunca a veja. Alguns podem reclamar que, ao expor a conta do administrador, isso torna o sistema um pouco menos seguro, mas como você deve definir uma senha para a conta para usá-la na linha de comando, essa preocupação é irrelevante.
O método que escolhi requer o uso de algum tipo de programa SHELLEXECUTE que suporte programas em execução minimizados. (Pode-se usar o comando START embutido no interpretador de comandos CMD, mas isso faria com que uma janela de prompt de comando piscasse, enquanto um programa sem console sem janelas evitaria isso.) Há muito por onde escolher, mas eu usei um que Eu escrevi caminho de volta quando.
Agora, basta criar uma entrada de registro na chave RUN que chama o ShellExecute, especificando a opção minimizar e usando RUNAS como o programa a ser executado. (Existem outros programas que podem executar um programa usando uma conta diferente, se você preferir, mas o RUNAS vem com o Windows e pode salvar a senha para evitar incluí-la na linha de comando). Alternativamente, você pode criar um atalho normal do Windows e mover-se. para o Comece pasta.
Por fim, você precisará passar o programa (e quaisquer argumentos para ele) como um argumento para o RUNAS.
(Não se esqueça de executar o programa de destino ou qualquer programa para esse fim com RUNAS, especificando a opção / SAVECRED, pelo menos uma vez sem executá-lo minimizado para salvar a senha.)
A linha de comando a ser usada pode ficar bastante complexa, porque é um programa que chama um programa chamando um programa. Fica pior se você precisar especificar argumentos para o programa de destino e, pior ainda, se precisar incluir espaços. A situação das aspas pode rapidamente se tornar enlouquecedora, portanto, muita experimentação provavelmente será necessária.
Por exemplo, se você usar ShelExec do P.J. Naughter e quer rodar o SpeedFan, você usaria uma linha de comando como esta:
Devo salientar que configurei as opções do SpeedFan para começar minimizadas, caso contrário, em vez de executar speedfan “diretamente”, precisaria executar um segundo programa ShellExecute com sua opção minimize para executar o SpeedFan (um programa chamando um programa chamando um programa chamando um programa). Conseguir que isso funcionasse quase certamente levaria até mesmo o mais completo administrador de computadores a enlouquecer.
Pode ser um pouco trabalhoso conseguir que a linha de comando funcione, mas parece funcionar muito bem para qualquer tarefa em segundo plano de execução automática que exija acesso administrativo. O melhor de tudo é que ele funciona para contas de usuário padrão / limitadas, portanto, você pode usar esse método para que os programas sejam executados automaticamente com privilégios elevados, sem fornecer um prompt do UAC para usuários comuns.
(Embora funcione bem, ele tem seus pontos negativos, principalmente porque ele executa os programas indiretamente, gerentes de execução automática como Autoruns, StartupDelayer, HijackThis etc. não poderão detectar qual programa real está sendo executado automaticamente - eles ainda funcionam e podem desativar / excluir / etc, mas não mostrarão o ícone correto ou informações de recurso de arquivo.)
fonte
Eu acho que usar o agendador de tarefas para iniciar automaticamente os programas não é muito amigável, e às vezes tem efeitos colaterais para mim (por exemplo, o ícone da bandeja para um programa não é adicionado).
Para remediar isso, criei um programa chamado Elevated Startup, que primeiro se relança com privilégios de administrador, depois lança todos os arquivos em um diretório. Como a Inicialização Elevada agora é elevada, todos os programas que ela lança também recebem privilégios de administrador. O diretório está no menu Iniciar, próximo ao diretório de inicialização clássico, e funciona da mesma forma.
Você pode encontrar um prompt do UAC quando o programa for reiniciado, dependendo das configurações do seu UAC.
Você pode obter o programa aqui: https://stefansundin.github.io/elevatedstartup/
fonte