Abaixo estão alguns hacks que desenvolvi. Eles não são elegantes, mas podem ser funcionais em seu ambiente corporativo.
Apenas HOMEDRIVE
Parece que muitos aplicativos usam apenas HOMEDRIVE / HOMEPATH. Nesse caso, você pode criar um script de inicialização que remapeie a letra da unidade base para o caminho do usuário local por meio do caminho de administração da unidade UNC:
set HOME
HOMEDRIVE=G:
HOMEPATH=\
HOMESHARE=\\Server\Users\username
net use g: /delete
net use g: \\localhost\C$\Users\username
Padrão local do HOMEDRIVE
Se você não precisar acessar "Servidor" pelo nome, poderá causar falha na configuração da diretiva de grupo e retornar à sua máquina local. A maneira mais fácil de fazer isso é adicionar uma entrada em C: \ Windows \ System32 \ drivers \ etc \ hosts como:
127.0.0.1 Server
Após a reinicialização, você verá algo como:
set HOME
HOMEDRIVE=C:
HOMEPATH=\Users\username
HOMEDRIVE / SHARE com caminhos UNC locais / remotos híbridos
Se você deseja acessar o "Servidor" pelo nome para alguns caminhos UNC, mas substituir outros por caminhos locais, desenvolvi a seguinte abominação. Nota: as conexões diretas do servidor ao "Servidor" ainda serão resolvidas na sua máquina local. Eu recomendo esta solução apenas se "Servidor" for apenas um servidor de arquivos:
Modifique C: \ Windows \ System32 \ drivers \ etc \ hosts para redirecionar "Servidor" para a sua máquina local:
127.0.0.1 Server
Adicione o seguinte valor do Registro de seqüência múltipla a HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ MSV1_0 para permitir que credenciais sejam passadas para o caminho UNC local:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\
BackConnectionHostNames = Server
Crie um diretório fictício que servirá como raiz do servidor:
set DUMMY_LOC=C:\Server_Dummy
mkdir %DUMMY_LOC%
cd /D %DUMMY_LOC%
Para cada caminho UNC que você deseja direcionar para o servidor real:
rem Alternatively you can use an IP below, but it is more likely to break if DNS changes
set SERVER_FQDN=Server.network.blah.com
rem Take a look at what's available...
net view \\%SERVER_FQDN%\
mklink /D Remote_Example \\%SERVER_FQDN%\Remote_Example
net share Remote_Example=%DUMMY_LOC%\Remote_Example /grant:everyone,FULL
Para cada compartilhamento UNC que você deseja definir localmente (como Usuários):
rem The link isn't really necessary for the share, I just find it easier to manage when all of these hacks are in the same directory
mklink /D Users C:\Users
net share Users=%DUMMY_LOC%\Users /grant:everyone,FULL
Reiniciar
Por exemplo, isso permitiria que os seguintes caminhos UNC fossem resolvidos:
\\Server\Remote_Example => \\Server.network.blah.com\Remote_Example
\\Server\Users => C:\Users
Essa resolução de caminho deve ocorrer antes dos mapeamentos da unidade. Desde que os caminhos UNC associados aos mapeamentos sejam válidos (sejam locais ou remotos), as letras das unidades devem se comportar conforme o esperado.
Por exemplo, na minha instalação, as seguintes variáveis são forçadas pelo domínio:
set HOME
HOMEDRIVE=G:
HOMEPATH=\
HOMESHARE=\\Server\Users\username
Mas, devido aos meus mapeamentos, o resultado é:
G: => \\Server\Users\username => C:\Users\username