Execute o arquivo em lotes com mapeamentos de unidade personalizados

1

Eu quero criar um "mini ambiente virtual" para executar um programa. A única diferença entre o meu ambiente normal e o virtual seria o mapeamento de drives.

  • Eu tenho uma unidade X: mapeada para \some\network\location
  • Eu tenho um programa myapp.exe que espera que a unidade X: seja mapeada para C:\local\path
  • preciso manter minha unidade X: mapeada para \some\network\location em todo o processo

Gostaria de poder executar o seguinte arquivo em lote e não afetá-lo no ambiente atual:

subst X: C:\local\path
myapp.exe
    
por mwolfe02 17.12.2012 / 17:18

1 resposta

0

Se o caminho que o aplicativo verificar ainda não existir, você poderá criar temporariamente um link simbólico. O aplicativo localizará os arquivos necessários no diretório esperado, enquanto o sistema de arquivos redireciona as operações quase que transparentemente para o caminho real. Use com cuidado; As coisas ruins (un) esperadas podem acontecer se, por exemplo, C:\local\path\ já existir.

Por padrão, o Windows apenas concede aos usuários nos privilégios do grupo Administradores a criação de links simbólicos. Portanto, o script a seguir teria que ser executado com elevação ou (Windows 7) as permissões teriam que ser definidas por meio da diretiva de segurança ( secpol.msc ou Painel de Controle, Ferramentas Administrativas, Diretiva de Segurança Local) na seção Políticas Locais, Atribuição de direitos de usuário.

mklink /D C:\local\path X:\
myapp.exe
rmdir C:\local\path
    
por 17.12.2012 / 17:54