Existe alguma forma de eu poder forçar um programa que normalmente requer privilégios de administrador (via UAC) a funcionar sem eles? (i.e.: sem prompt UAC e sem acesso a todo o sistema).
Adicionado: Sem modificar o executável em si.
Apesar da resposta do James's, encontrei algumas maneiras de fazer isso mais:
trustInfo
do manifesto (ou o manifesto inteiramente, para que eu possa utilizar um externo), permitindo que o programa inicie sem UAC. Infelizmente isso modifica o executável, então ele sai logo após devido a um teste de checksum interno.Espero que I'não seja tarde demais para a festa, mas eu estava procurando por uma pergunta similar e sem ver uma resposta aqui eu descobri que o Windows' construindo o comando RunAs
, quando executado como administrador, pode fazer isso com a opção /trustlevel
.
RUNAS /trustlevel:<TrustLevel> program
/showtrustlevels displays the trust levels that can be used
as arguments to /trustlevel.
/trustlevel <Level> should be one of levels enumerated
in /showtrustlevels.
Isto funcionou no meu caso. Ironicamente, iniciar um programa explicitamente sem elevação exige um prompt de comando elevado. Vai figura. :) Espero que isso o ajude.
Eu resolvi este problema hoje usando o kit de ferramentas de personalização de aplicações MS.
Eu segui as instruções em um artigo da república tecnológica.
Basicamente:
você recebe o conjunto de ferramentas da MS aqui .
Clique em Fixar
Escolha a opção **RunAsInvoker***.
Clique com o botão direito do mouse na correção e escolha Instalar
Não, se um programa requer UAC então ele está tentando acessar algo fora de sua caixa de areia. O programa não irá funcionar corretamente sem o acesso elevado.
Se você só quer se livrar da notificação, você pode desativar a UAC.
Desabilite o UAC no Windows Vista: Iniciar, digitar " utilizador". Clique em "Contas de usuário". Na janela que aparece, clique em "User Account Control Settings" e depois Desligue o UAC.
Desabilite o UAC no Windows 7: Iniciar, digite "user". Clique em "User Account Control Settings". Arraste a barra de selecção até ao fundo para "Nunca Notifique."