Falta de reescrever o programa, não. Escrever em áreas protegidas (incluindo arquivos de programas) requer elevação, independentemente das ACLs NTFS.
Aqui está uma lista de ações que acionam o UAC.
Temos um aplicativo legado em diversos sites de clientes. Em alguns casos, os clientes precisam ter acesso de gravação a uma pasta ou duas na pasta Arquivos de programas (x86).
À medida que o tempo passa, mais e mais clientes estão habilitando o UAC nos servidores, de modo que agora estamos nos deparando com um simples roadblock.
Podemos aplicar a segurança normal do Windows / compartilhamento, mas eles ainda não têm acesso de gravação. Na verdade, como administrador local, só tenho privilégios por meio de um programa elevado.
Falta de mudar a localização do programa (tarefa maior) Existe alguma maneira que eu possa fornecer acesso de escrita a uma pasta limitada para usuários limitados, enquanto o esforço de desenvolvimento para alterar o programa progride?
Eu sei que posso desativar o VirtualStore, mas estou tentando evitar isso.
Falta de reescrever o programa, não. Escrever em áreas protegidas (incluindo arquivos de programas) requer elevação, independentemente das ACLs NTFS.
Aqui está uma lista de ações que acionam o UAC.
Tente configurar as pastas para que elas tenham o acesso necessário conferido a um grupo do qual a conta que está executando o aplicativo é membro. E não o grupo Administradores, pois isso exigiria elevação porque, por padrão, a associação do grupo Administrador é desativada.
Isso não é específico das pastas do sistema. Se você fosse tentar uma atividade como copiar arquivos para uma pasta que você teve o acesso necessário por meio do grupo Administradores, a elevação é necessária. Realmente não importa onde a pasta está localizada.
Outra possibilidade seria o nível de integridade da pasta. Um processo em execução no nível de integridade médio ou baixo não poderá gravar em uma pasta sinalizada para alto nível de integridade. Você pode visualizar o nível de integridade com icacls.exe e o nível de integridade do processo / serviço usando o Process Explorer.
C:\>icacls .
. BUILTIN\Administrators:(F)
BUILTIN\Administrators:(OI)(CI)(IO)(F)
NT AUTHORITY\SYSTEM:(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)(F)
BUILTIN\Users:(OI)(CI)(RX)
NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(M)
NT AUTHORITY\Authenticated Users:(AD)
Mandatory Label\High Mandatory Level:(OI)(NP)(IO)(NW)