Controle de Conta de Usuário (UAC) e o Mapeamento de Drives
Esse é um problema bastante simples, mas que ocorre frequentemente quando a área de suporte vai realizar o troubleshooting na máquina do usuário.
Imagine o seguinte cenário: o UAC está configurado no nível padrão e o usuário possui um recurso de rede mapeado para, por exemplo, o drive Z.
Vamos supor que o suporte tente executar como administrador uma aplicação localizada no recurso Z que está apresentando problema para diagnosticar se o erro é decorrente da falta de acesso.
Quando o suporte executa a aplicação como administrador é gerado outro erro informando ue o mapeamento Z não existe. Entretanto, o mesmo mapeamento é exibido no Windows Explorer.
Exemplo
Abra o prompt de comando e mapeie a pasta Windows para o drive Z, através do comando subst Z: C:\Windows. Abra o Windows Explorer e observe que o drive Z está mapeado conforme esperado.
Execute agora o prompt de comando elevado (botão direito e executar como administrador). Observe que ao tentar acessar o drive Z (digite Z: e pressione enter) é exibida uma mensagem informando que o drive não existe.
Motivo
Quando um administrador faz logon, o Windows cria dois tokens de acesso separados para o usuário: um token de acesso sem privilégios administrativos (token filtrado) e um token de acesso de administrador (token full). Para maiores detalhes veja o artigo Controle de Conta de Usuário (UAC).
Quando recursos de rede são mapeados, eles estão associados a sessão de logon corrente para o token de acesso do processo atual. Isso significa que, se um usuário usa o prompt de comando (cmd. exe) juntamente com o token de acesso filtrado para mapear um compartilhamento de rede, o compartilhamento de rede não está mapeado para processos que são executados com o token de acesso total de administrador.
Solução
Existem duas maneiras de resolver esse problema, sendo a primeira duplicar o mapeamento da unidade de rede para o token elevado. Nesse caso, além do primeiro mapeamento é necessário realizar um segundo através do prompt de comando elevado (executado com privilégio administrativo).
A segunda opção é configurar a chave EnableLinkedConnections no registro do Windows para compartilhar as conexões entre os tokens filtrado e de administrador (full). Após configurar essa chave,o LSA (Local Security Authority) verifica se existe outro token que está associado a sessão do usuário e se o recurso de rede está mapeado para o token. Caso o LSA determinar que existe o mapeamento para o outro token do usuário, ele adiciona o mapemanento para o token atual.
Siga os seguintes passos para configurar a chave EnableLinkedConnections:
1.Abra o Regedit.exe.
2.Localize a seguinte chave de registro: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
3.Crie uma nova subchave do tipo DWORD com o nome EnableLinkedConnections e com o valor 1.
4.Reinicie o computador.
Maiores detalhes em: https://support.microsoft.com/kb/937624
Comments
Anonymous
March 18, 2014
The comment has been removedAnonymous
December 03, 2014
Obrigado pela postagem, me salvou!!!Anonymous
February 08, 2015
Muito Obrigado, resolveu como é descrito, parabéns!Anonymous
August 19, 2016
Parabéns, resolveu meu problema tb. obg.Anonymous
November 16, 2016
Muito bom, resolveu meu problema, bem explicado sem enrolação. Perdi bastante tempo procurando em foruns que me induziram ao erro.Valeu mesmo pelo tutorial...- Anonymous
November 16, 2016
Show Nilson!!!!Obrigado pelo feedback!Abraços.
- Anonymous