
Problema
Tenho o Windows XP SP3 aqui no VMWare, instalação bastante nova, com apenas vários aplicativos (navegadores, Office) instalados.
Quando eu:
- Faça login como administrador local
- Usando a GUI do Explorer eu conecto um servidor remoto como X:
- Inicie o "Prompt de comando" através do link do menu Iniciar:
a) iniciando o link manualmente
b) clicando com o botão direito do mouse no link, escolhendo "Executar como..." e preenchendo as credenciais do mesmo usuário
o primeiro caso funciona bem, mas no último cmd.exe
não é possível acessar X:
:
C:\Documents and Settings\Administrator>net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
Unavailable X: \\server\share\folder Microsoft Windows Network
The command completed successfully.
C:\Documents and Settings\Administrator>x:
The system cannot find the drive specified.
C:\Documents and Settings\Administrator>dir x:\
The system cannot find the path specified.
C:\Documents and Settings\Administrator>
Pré-análise
Comparei várias propriedades que encontrei sobre os processos (não tenho certeza se todas são relevantes): ambiente, identificadores abertos, DLLs abertas, guia "Segurança" no Process Explorer e todas elas são iguais.
Uma coisa que descobri é que ao observar a tentativa com o Process Monitor, a tentativa seguinte executa mais quatro etapas:
"Time of Day","Process Name","PID","Operation","Path","Result","Detail"
"10:55:33.4784227 AM","cmd.exe","2792","RegOpenKey","HKCU","SUCCESS","Desired Access: Maximum Allowed"
"10:55:33.4785212 AM","cmd.exe","2792","RegOpenKey","HKCU\Software\Policies\Microsoft\Control Panel\Desktop","NAME NOT FOUND","Desired Access: Read"
"10:55:33.4785569 AM","cmd.exe","2792","RegOpenKey","HKCU\Control Panel\Desktop","SUCCESS","Desired Access: Read"
"10:55:33.4786210 AM","cmd.exe","2792","RegQueryValue","HKCU\Control Panel\Desktop\MultiUILanguageId","NAME NOT FOUND","Length: 256"
"10:55:33.4786650 AM","cmd.exe","2792","RegCloseKey","HKCU\Control Panel\Desktop","SUCCESS",""
"10:55:33.4787131 AM","cmd.exe","2792","RegCloseKey","HKCU","SUCCESS",""
"10:55:33.4912359 AM","cmd.exe","2792","CreateFile","X:","SUCCESS","Desired Access: Read Data/List Directory, Synchronize, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened"
"10:55:33.4924104 AM","cmd.exe","2792","QueryNameInformationFile","X:","SUCCESS","Name: \server\share\folder"
"10:55:33.4924860 AM","cmd.exe","2792","QueryInformationVolume","X:","SUCCESS","VolumeCreationTime: 9/6/2005 2:05:04 PM, VolumeSerialNumber: 109F-0912, SupportsObjects: True, VolumeLabel: DATA"
"10:55:33.4932539 AM","cmd.exe","2792","CloseFile","X:","SUCCESS",""
"10:55:33.4937810 AM","cmd.exe","2792","RegOpenKey","HKCU","SUCCESS","Desired Access: Maximum Allowed"
"10:55:33.4939097 AM","cmd.exe","2792","RegOpenKey","HKCU\Software\Policies\Microsoft\Control Panel\Desktop","NAME NOT FOUND","Desired Access: Read"
"10:55:33.4939451 AM","cmd.exe","2792","RegOpenKey","HKCU\Control Panel\Desktop","SUCCESS","Desired Access: Read"
"10:55:33.4940098 AM","cmd.exe","2792","RegQueryValue","HKCU\Control Panel\Desktop\MultiUILanguageId","NAME NOT FOUND","Length: 256"
"10:55:33.4940548 AM","cmd.exe","2792","RegCloseKey","HKCU\Control Panel\Desktop","SUCCESS",""
"10:55:33.4941023 AM","cmd.exe","2792","RegCloseKey","HKCU","SUCCESS",""
As etapas CreateFile, Query* e CloseFile estão faltando no log da falha.
Pergunta
O que pode causar tal discrepância? Isso é um inseto?
Responder1
A partir do Windows XP, cadaSessão de logon LSA(não relacionadopara sessões de serviços de terminal) temseu próprio conjuntode atribuições de letras de unidade. Se você usarCorrer como...– seja a conta igual ou diferente – a função ainda cria uma sessão de logon separada com as credenciais fornecidas.
A partir do Windows 8 ou Server 2012 (aproximadamente), você pode habilitar o EnableLinkedConnections
valor do registro em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
para permitir que aplicativos elevados do UAC compartilhem os mapeamentos de unidade regulares.
Mais:
- MSKB 937624 (24/06/2011):Os programas podem não conseguir acessar alguns locais de rede depois que você ativa o Controle de Conta de Usuário no Windows Vista ou no Windows 7
- MS KB 3035277:As unidades mapeadas não estão disponíveis em um prompt elevado quando o UAC está configurado para "Solicitar credenciais" no Windows
Responder2
Porque as unidades mapeadas estão em !PER USER! base, o outro usuário (que você faz o RUN AS) não pode vê-lo!
Para vencer, você precisa primeiro tentar mapear uma unidade em um lote que está sendo executado como usuário.