Você pode usar o comando subst
para mapear uma letra de unidade para seu diretório de usuários. As letras de unidade criadas por subst
são por usuário, para que você possa criar o mesmo mapeamento de cada usuário e criar um link simbólico para essa letra de unidade. Ou apenas aponte o programa para a unidade mapeada por meio de suas configurações.
Um exemplo:
subst %userprofile% v:
mklink /d c:\ProgramData\AppFolder v:\Documents\AppForder
Uma desvantagem dessa solução é que as letras de unidade mapeadas não são persistentes, portanto, é necessário recriá-las toda vez que um usuário efetua login (por exemplo, colocando um atalho no comando subst
em %appdata%\Microsoft\Windows\Start Menu\Programs\Startup
. pode fazer um arquivo de lote que executará subst
e, em seguida, seu programa.
Uma solução alternativa é executar seu programa em um sandbox (por exemplo, Sandboxie ). Isso não funcionará se o programa tentar faça algo de baixo nível (por exemplo, instalando drivers ou serviços). Além disso, você terá que restaurar os arquivos criados pelo programa a partir do sandbox após cada execução e precisar usá-los em outro lugar.