Pergunta

Nós temos um aplicativo que mapeia programaticamente unidades de rede. No Vista com o UAC no, temos alguns problemas estranhos.

Nosso aplicativo mapeia a unidade não elevado, por isso, se as navega usuário Explorer e clicar duas vezes para executar um exe, ele solicita UAC. Então, quando eles aprová-lo, ele solicitará um nome de usuário / senha para o share ... estranho, já que as credenciais são salvas.

Acontece, um processo elevado não pode acessar uma unidade mapeada que foi mapeada a partir de um processo não-elevado.

Para ver este problema em ação, execute os seguintes passos:

  • Executar cmd.exe sem UAC
  • Executar "net use w: \ yourHostname \ yourShare / user: youruser yourpassword / persistent: yes"
  • Executar cmd.exe como administrador
  • Digite "w", e veja a mensagem de erro

Neste ponto, você pode executar "net use" simples e veja a conexão no cmd elevada não está disponível mas o outro cmd não elevado o vê como OK.

Alguém sabe uma solução alternativa para corrigir esse problema? ou talvez uma maneira de mapear uma unidade de rede para "Todos os usuários"?

Foi útil?

Solução 2

Confira neste link: Regedit Fazer a ligação

Eles descrevem uma chave do registro que permite elevados que os usuários acessem as unidades mapeadas e vice-versa. Isso resolve todos os meus problemas e foi exatamente o que eu estava procurando.

EDIT:

O link original está morto, mas aqui está o texto como copiado do 24 de janeiro de 2009 snapshot em www.archive.org :


Se você está achando que você não tem acesso a unidades mapeadas a partir de seu administrador símbolo tente o seguinte. Quando executado como um administrador protegido você tem duas fichas e esta chave vai manter a conexão para ambas as tokes (essa é a minha de qualquer maneira entendimento). Pode também ajudar a esclarecer problemas com scripts de login.

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System EnableLinkedConnections = (DWORD) 1

Também de uso é o "'Scripts de política de grupo pode falhar devido ao usuário Account Control" deste doc.

http: / /technet2.microsoft.com/WindowsVista/en/library/5ae8da2a-878e-48db-a3c1-4be6ac7cf7631033.mspx?mfr=true

Eu estarei postando mais informações sobre isso em breve.

Outras dicas

Isso ocorre por design.

Mesmo que a conta de usuário é o mesmo, com a versão elevada tendo uma ficha com a adesão dos privilégios de grupo administrador e de adição, os tokens são criados de forma independente e, portanto, têm diferentes LUID do e aparecer para o kernel para ser de diferentes logins de usuários . Uma vez que eles são de diferentes logons, unidades mapeadas não são compartilhados entre eles.

http://blogs.msdn.com/cjacks/archive/2007/02/19/mapped-network-drives-with-uac-on-windows-vista.aspx discute isso em detalhes adicionais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top