Existe alguma maneira de forçar um programa que normalmente requer privilégios de administrador (via UAC) para ser executado sem eles? (ou seja: nenhum prompt do UAC e nenhum acesso ao sistema ).
Adicionado: sem modificar o próprio executável.
Apesar da resposta de James, eu encontrei algumas maneiras que quase podem ser feitas:
- Ao modificar o executável, posso remover a
trustInfo
entrada do manifesto (ou o manifesto inteiramente, para que eu possa usar um externo), permitindo que o programa inicie sem o UAC. Infelizmente, isso modifica o executável e sai logo após devido a um teste interno de soma de verificação. - Usando o Process Explorer, posso iniciá-lo como um Usuário Limitado. No entanto, isso parece limitá-lo significativamente mais do que eu gostaria (ele funciona como o Modo Protegido IE e, portanto, pode acessar significativamente menos do que o meu usuário não elevado padrão).
windows
administrator
uac
Andrew Russell
fonte
fonte
Respostas:
Salve este texto
<name_of_file>.reg
e adicione-o ao Registro do Windows. (Clicar duas vezes nele deve funcionar).Depois, clique com o botão direito do mouse no aplicativo que você deseja executar sem privilégios administrativos e selecione "Executar sem elevação de privilégio".
Em alguns casos - uma pequena quantidade de 0,1% dos programas pode perguntar duas vezes sobre o prompt do UAC.
fonte
"
e depois se transforme\"
em"
)./min
é um erro. A solução funciona exatamente da mesma maneira sem ela. O vômito deve ter se misturadocmd
estart
comutado. Parece quecmd.exe
não reclama de interruptores errados. Tentecmd /whatever
, por exemplo.Salvar em
nonadmin.bat
:Agora você pode arrastar e soltar programas para executá-los sem administrador.
Isso não requer privilégios de administrador, como a alteração da chave do Registro. Além disso, você não irá desordenar o menu de contexto.
Baseado na resposta de Vom
Atualização: agora deve funcionar com programas que também possuem espaços no nome.
fonte
Windows cannot find 'C:\Program'. Make sure you typed the name correctly, and then try again
. Eu tentei esse comando manualmente várias vezes com pequenas variações e sem sorte. Alguma ideia?Espero não estar muito atrasado para a festa, mas estava procurando uma pergunta semelhante e, sem ver uma resposta aqui, descobri que o
RunAs
comando interno do Windows , quando executado como administrador, pode fazer isso com o/trustlevel
switch.Isso funcionou no meu caso. Ironicamente, iniciar um programa explicitamente sem elevação requer um prompt de comando elevado . Vai saber. :) Espero que ajude você.
fonte
Se você possui um aplicativo específico que deseja sempre executar sem o UAC, pode direcioná-lo ao Registro (adicione o texto a um arquivo REG e importe-o para o Registro):
Ao contrário desta resposta , esta solução não requer clique alternativo ou alteração na interação do usuário.
A Microsoft chama esse processo adicionando o
RunAsInvoker
"Calço de Compatibilidade" .fonte
Resolvi esse problema hoje usando o kit de ferramentas de personalização de aplicativos da Microsoft.
Eu segui as instruções em um artigo da república tecnológica .
Basicamente:
1) você recebe o kit de ferramentas da MS aqui .
2) Clique em Corrigir
3) Escolha a opção RunAsInvoker
4) Clique com o botão direito do mouse na correção e escolha Instalar
fonte
Se é um
exe
arquivo de instalação (instalação) que requer privilégios de administração, há um truque para executá-lo sem acesso elevado:Se o nome do arquivo contiver palavras como
setup
ou oinstall
Windows forçá-lo à força com acesso elevado, mesmo que ele não precise de acesso elevado:Se o arquivo .exe tiver um manifesto, essas heurísticas de elevação não se aplicarão.
Isso está documentado nos documentos do UAC (Controle de conta de usuário):
Modo de leitura aqui: https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works
fonte
Enquanto em sua pergunta, Andrew afirmou que o seguinte não funcionou completamente:
Consegui modificar um arquivo. Manifest externo para o software que estava usando e alterar
<ms_asmv2:requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
para
<ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false" />
Acontece que o software que eu estava usando realmente não exigia direitos de administrador, então eu pude executá-lo em uma conta de Usuário Padrão sem UAC ou senhas de administrador. Obrigado!
fonte
ms_asmv2:
também pode ser omitido. Além disso, é possível que a alteração do tamanho do bloco xml incorporado possa corromper o binário; portanto, "requireAdministrator" deve ser alterado para "asInvoker" preenchido no mesmo comprimento com espaços antes do uiAccess.Corrigi esse problema alterando as permissões na pasta que continha o programa.
Eu adicionei cada usuário que executará esse programa e dei a eles privilégios de "controle total". Isso resolveu o problema e eu deixei a opção "executar como administrador" desmarcada.
Não tenho preocupações com a segurança dos usuários que executarão o programa.
fonte
Não, se um programa requer UAC, ele está tentando acessar algo fora da sua sandbox. O programa não será executado corretamente sem o acesso elevado.
Se você quiser apenas se livrar da notificação, poderá desativar o UAC.
Desabilitar o UAC no Windows Vista: Inicie, digite "usuário". Clique em "Contas de usuário". Na janela exibida, clique em "Configurações de controle de conta de usuário" e, em seguida, desative o UAC.
Desabilitar o UAC no Windows 7: Iniciar, digite "usuário". Clique em "Configurações de controle de conta de usuário". Arraste a barra de opções até o final para "Never Notify".
fonte