Configurando Tarefas em Segundo Plano para Execução Automática como Administrador

2

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.

Synetech
fonte

Respostas:

0

Os programas que você mencionou geralmente têm uma opção RUN AT STARTUP dentro das configurações - normalmente é o caminho mais fácil.

Executar os programas como tarefas permitirá que você os execute com privilégios elevados. Há uma opção para fazer exatamente isso na caixa de diálogo "Criar nova tarefa".

Você também pode verificar as propriedades de cada arquivo exe e marcar a caixa na página COMPATIBILIDADE para SEMPRE EXECUTAR COMO ADMINISTRADOR.

Mais detalhes aqui - http://www.sevenforums.com/tutorials/11841-run-administrator.html

e http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html

Sparx
fonte
As funções de execução automática somente as executam sem admin, o que limita suas funções (por exemplo, Speedfan usa um chip de monitoramento diferente e menos funcional quando não é administrador). Como eu disse, eles precisam ser executados o mais cedo possível e agendá-los como tarefas é posterior à chave RUN no registro. Usando o método de atalho (ou seja, na pasta de inicialização tem o mesmo problema).
Synetech
Mesmo depois de especificar EXECUTAR COMO ADMINISTRADOR na guia COMPATIBILIDADE?
Sparx
Usando essa opção faz com que um prompt do UAC. As tarefas do Autorun obviamente precisam ser executadas sem um prompt. Acrescentarei isso à pergunta, só para ficar absolutamente claro.
Synetech
0

Uma alternativa é usar PsExec da Microsoft - ele pode passar o nome de usuário e a senha para o comando que precisa ser executado.

Sparx
fonte
Certo; esse foi um dos "outros programas que podem executar um programa usando uma conta diferente" a que eu estava me referindo. No entanto, na última vez que verifiquei, ainda é necessário colocar a senha real na linha de comando / registro / arquivo em lote / etc. no Claro . Eu vi outro programa que pode executar programas usando uma conta diferente que pode codificar a senha, mas isso é um aplicativo comercial.
Synetech
0

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:

  1. Criar nova tarefa (NÃO TAREFA SIMPLES)
  2. nas abas comuns
  3. atribuir um nome ( Speedfan )
  4. Descrição: Speedfan
  5. Na opção para executar a tarefa use a conta : Clique no Mudança... -button, digite Comercial então clique Verifique os nomes Se o processo foi bem sucedido, você verá algo como BUILTIN \ Users
  6. Clique EXECUTAR COM O DIREITO MAIS ALTO caixa de seleção
  7. Clique Gatilhos aba.
  8. Clique Crio
  9. selecione a segunda opção em uma lista ( no logon )
  10. Clique Está bem
  11. Clique Crio
  12. selecionar Quando você altera ou cria a tarefa opção
  13. Clique Está bem . A tarefa está agora pronta e não pedirá mais uma elevação
  14. Selecione Ações Aba
  15. Clique Crio
  16. Sair Rodar programa Opção e clique no Squeaky toy botão - selecione o caminho para speedfan.exe (Por exemplo: "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á bem
  17. E finalmente clique Está bem use isto para executar o CCC.EXE, o RaidCall e qualquer autorun irritante.
Kitty Hawk
fonte
Eu já tinha considerado isso e usado por um tempo, no entanto, eu já expliquei as deficiências com ele na questão.
Synetech
0

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:

shelexec /showcmd:sw_hide /EXE runas "/params:/user:administrator /savecred ""C:\Program Files\SpeedFan\speedfan.exe"""

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.)

Synetech
fonte
0

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/

stefansundin
fonte