Estou usando o Windows 10 Pro de 64 bits.
Meu aplicativo (que foi executado como administrador) mapeia uma pasta da unidade D para uma unidade de rede Z usando o Windows Network API wnetaddconnection2()
.
Quando abri o File Explorer, não consegui ver a unidade Z. No entanto, quando abro outros aplicativos (por exemplo, Visual Studio) no modo Admin e navego até a pasta Este PC, consigo ver a unidade Z em Local de rede.
Por que e como resolver esse problema de unidades mapeadas que não aparecem imediatamente após serem mapeadas?
Esse problema não acontece
- no Windows 7 OU
- quando meu aplicativo não é executado como administrador OU
- depois de reiniciar o explorer.exe OU
- na caixa de diálogo Abrir arquivo em outros aplicativos (como Word, Paint, Visual Studio, etc.)
Nota: Eu tenho EnabledLinkedConnections definido como 1, EnableLUA definido como 1.
Solução tentada
Uma solução é procurar um programa em Ferramentas administrativas chamado Política de segurança local e desabilitar todas as políticas relacionadas ao UAC em Configurações de segurança > Políticas locais > Opções de segurança (localizadas nas 15 políticas inferiores da lista), exceto UAC:Comportamento... , UAC:Switch... e UAC: Virtualizar...
No entanto, não quero seguir esse caminho devido a vários problemas que ocorrem, como a impossibilidade de abrir aplicativos do Windows 10, como Calculadora, etc.
Responder1
Por causa do UAC, o Shell é executado com permissões de usuário padrão; ele não pode ver unidades mapeadas que foram configuradas no seu aplicativo em execução com direitos de administrador.
Existe umsolução alternativa chamada ativar a opçãoEnableLinkedConnections
:
- Clique em Iniciar, digite regedit na caixa Iniciar programas e arquivos e pressione ENTER.
- Localize e clique com o botão direito na subchave do registro
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
. - Aponte para Novo e clique em Valor DWORD.
- Digite
EnableLinkedConnections
e pressione ENTER. - Clique com o botão direito
EnableLinkedConnections
e depois clique emModify
. - Na caixa Dados do valor, digite 1 e clique em OK.
- Saia do Editor do Registro e, em seguida
restart the computer
, .
Ou vocêposso aplicar meu hack para executar o Explorer como administradorpara ver também as unidades mapeadas.