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