Por que uma unidade mapeada não está disponível sob um prompt cmd elevado, mas está sob um prompt cmd normal? [duplicado]

19

Com o Windows 8, por que uma unidade mapeada não está disponível sob um prompt cmd elevado, mas está sob um prompt cmd normal? Eu posso usar uma rede e fazer com que ela esteja disponível, mas ainda acho isso estranho.

    
por JimDel 08.10.2012 / 23:51

3 respostas

22

Ao usar o UAC com um usuário administrativo, no login, o Windows cria dois tokens. Um token (o elevado) não está filtrado e tem o grupo Administradores ativado. O outro token tem o grupo Administradores (e alguns outros detalhes, como o grupo Usuários avançados) filtrados.

Como esses dois tokens têm contextos de segurança separados, as conexões de rede em um não estão disponíveis no outro, mesmo que seja o mesmo usuário.

Portanto, se você mapear uma unidade usando o Explorer, um Prompt de Comando elevado (ou qualquer outro processo elevado) não poderá visualizá-lo.

Você pode mapear o mesmo recurso de rede (usando a mesma letra de unidade, mesmo) em seu prompt de comando elevado usando o comando NET USE. Depois disso, qualquer processo elevado também poderá vê-lo.

    
por 09.10.2012 / 04:28
19

A resposta de William explica por que isso acontece e fornece uma solução alternativa. Mas eu quero adicionar, há realmente um Correção de registro do Vista que funciona no Windows 7 para ajustar esse comportamento. Basta adicionar isso ao seu registro:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:00000001

Após uma reinicialização, as unidades mapeadas devem estar acessíveis por meio do prompt de comando elevado.

    
por 04.09.2013 / 00:20
3

Porque você está elevando o prompt de comando como um usuário diferente e a unidade mapeada em questão foi mapeada pelo usuário não administrativo. Usuários diferentes têm diferentes configurações de usuário, como impressoras, unidades de rede mapeadas e assim por diante.

    
por 09.10.2012 / 01:37