Problema
Eu acho que existem técnicas diferentes envolvidas na execução de coisas como admin. Para aplicativos, existe a guia de compatibilidade. Essas configurações são armazenadas no registro. Você provavelmente verá alguns aplicativos listados em sua máquina:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted
Um arquivo batch ou cmd não é um aplicativo. É um script executado pelo aplicativo cmd.exe. Portanto, ele não é tratado pelas configurações de compatibilidade de aplicativos no registro.
Além disso, o arquivo em lote não tem como armazenar as informações, elas devem ser executadas como administrador.
Solução
Mas há outra maneira de fazer isso:
- crie um atalho (link) para o arquivo cmd / bat.
- nas propriedades do atalho, na guia Atalho, clique no botão Avançado ...
- marque a caixa de seleção executar como administrador .
Observe que, mesmo nas propriedades de atalho, o executar como administrador está esmaecido na guia compatibilidade . A opção runas é armazenada no arquivo de atalho (.lnk).
Em uma nota lateral
Você pode definir a caixa de seleção esmaecida como admin no registro:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Crie uma chave REG_SZ com o caminho completo para o seu arquivo de lote e "RUNASADMIN" como valor. (... ou provavelmente mais fácil: verifique a opção de 256 cores nas propriedades e edite a entrada do registro.) Mas isso não funcionará. Pelo menos não para a maioria dos arquivos. É provavelmente por isso que ficou cinza na guia de compatibilidade em primeiro lugar.
De qualquer forma, foi exatamente isso que deduzi para mim. Não encontrei documentação oficial sobre isso.