Uma VPN, duas contas Windows: porque a outra sessão se quebra
Rotas e resolvedores são à escala da máquina, por isso o túnel de uma conta reencaminha as outras. Depois descubra que política ou módulo de início de sessão removeu a entrada Mudar de utilizador.
Duas pessoas têm sessão iniciada, uma delas liga o túnel da empresa e o navegador da outra conta deixa de carregar páginas que funcionavam há um minuto. Na mesma máquina, a entrada Mudar de utilizador também desapareceu do ecrã de início de sessão, pelo que a segunda pessoa não consegue voltar à sua própria sessão. Seguir isto da segunda sessão para fora é a forma mais rápida de entender, porque nada na ligação do primeiro utilizador está escondido, e nada no problema do segundo utilizador é misterioso depois de ver quais os objetos partilhados.
Comece na sessão que se estragou
Vá ao ambiente de trabalho da segunda conta, não da primeira. Abra aí um terminal e veja a tabela de rotas e a lista de resolvedores enquanto a outra sessão está ligada. Tudo o que vê pertence à máquina, não ao outro utilizador, e essa é a primeira pista.
Get-NetRoute -AddressFamily IPv4 | Sort-Object RouteMetric | Select-Object -First 12 DestinationPrefix,NextHop,InterfaceAlias
Get-DnsClientServerAddress -AddressFamily IPv4 | Select-Object InterfaceAlias,ServerAddresses
Get-NetConnectionProfile | Select-Object Name,NetworkCategory,IPv4Connectivity
Se a rota predefinida aponta agora para a interface do túnel, o tráfego do segundo utilizador também a segue. Se a lista de resolvedores passou a ter um servidor privado, as consultas deles vão agora para um sítio onde não conseguem chegar quando o túnel cai. Nenhuma destas situações é um erro do cliente; são consequências de uma única pilha de rede partilhada.
O terceiro comando explica uma segunda classe de queixas. Quando um adaptador muda a máquina de uma categoria de rede pública para privada, as regras de firewall ligadas a um perfil mudam para todas as contas ao mesmo tempo, pelo que aplicações que eram permitidas de manhã podem ficar bloqueadas à tarde sem ninguém tocar numa regra.
A ligação é por utilizador, a rede não
O Windows guarda o objeto de ligação no perfil do utilizador que a criou. O adaptador virtual que produz, as rotas que instala e os servidores DNS que regista são à escala da máquina. Essa separação é a origem dos dois sintomas do título.
Também explica porque terminar a sessão do primeiro utilizador costuma corrigir o segundo. Remover a ligação remove o adaptador e as rotas com ela, e o estado à escala da máquina volta ao que era antes de alguém se ligar. Isso é um diagnóstico útil: se terminar a sessão corrige a outra conta, está a olhar para estado partilhado e não para um perfil avariado.
O que não pode fazer é dar à segunda sessão uma tabela de rotas diferente. Há uma tabela, e quaisquer duas sessões partilham-na. Isso é uma propriedade do sistema operativo e não uma limitação de um cliente em particular. Também significa que qualquer conceção que assuma o contrário continuará a falhar, e as falhas parecerão erros de aplicação sem relação.
Descubra o que removeu Mudar de utilizador, por esta ordem
A mudança rápida de utilizador desapareceu por uma razão completamente diferente, e a correção não tem nada a ver com encaminhamento. Percorra os quatro candidatos por ordem, porque os dois primeiros revertem-se em segundos e os seguintes têm um custo.
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name HideFastUserSwitching
gpresult /h $env:TEMP\gp.html
Get-Service | Where-Object { $_.DisplayName -match 'Logon|Access|Credential' } | Select-Object Status,Name,DisplayName
O valor de registo é a explicação mais simples. Se existir e ler 1, a entrada está escondida por política, e o caminho da Política de Grupo é Computer Configuration, Administrative Templates, System, Logon, e a definição nomeada para esconder os pontos de entrada de mudança rápida de utilizador. Defina-a como Not Configured e atualize com gpupdate /force.
O segundo comando diz-lhe se essa política está a ser entregue por um domínio em vez de escrita localmente. Se aparecer no relatório com um GPO vencedor, editar o valor local é uma correção temporária que reverte na atualização seguinte, e a conversa pertence a quem é dono da política.
O terceiro comando cobre o outro mecanismo. Um fornecedor de credenciais ou de acesso à rede que instala um módulo de início de sessão pode suprimir a entrada enquanto corre, e alguns clientes registam também um componente que arranca antes do início de sessão e mantém uma reivindicação no ecrã de início de sessão. Desativar esse serviço repõe a mudança, e também remove as funções pré-início de sessão ou posture para as quais o módulo existe.
| Cause | How to confirm | Cost of the fix |
|---|---|---|
| HideFastUserSwitching policy | Registry value present and set to 1 | None; remove the policy |
| Logon module service | Service running under a vendor name | Loses pre-logon and posture behaviour |
| GINA-era assumption | Only relevant on very old Windows | Nothing to fix; the mechanism is gone |
Altere sem se fechar fora
Mantenha uma sessão administrativa aberta enquanto trabalha, e nunca faça uma alteração no ecrã de início de sessão numa máquina a que só chega através desse ecrã. Termine primeiro as outras sessões, aplique a alteração, atualize e só depois teste mudando de utilizador em vez de reiniciar.
Registe que funções posture desativou. Uma atualização do cliente pode reinstalar ou reativar o módulo de início de sessão, e o sintoma regressa sem causa óbvia, normalmente a meio de uma janela de suporte quando ninguém se lembra da alteração anterior.
Num dispositivo gerido, assuma que a definição é entregue de cima. Verificar o relatório de políticas primeiro poupa uma hora de edições locais que revertem. Também lhe diz a quem perguntar quando a resposta é não. Um pedido que nomeia a política vencedora é resolvido duas vezes mais depressa do que um que descreve uma chave de registo que alguém já alterou.
Verifique as duas contas e escolha o modelo
Teste o resultado pela ordem em que os dois utilizadores o vivem. Inicie sessão com a segunda conta com a primeira desligada, confirme o acesso normal, ligue depois o túnel da primeira conta e confirme que o caminho esperado da segunda conta continua a ser o que pretendia.
qwinsta
Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object InterfaceAlias,NextHop,RouteMetric
Test-NetConnection -ComputerName intranet.example.internal -Port 443
Se as duas contas precisam mesmo de caminhos de rede diferentes ao mesmo tempo, a resposta honesta são duas máquinas, duas máquinas virtuais ou uma política em que só um caminho é exigido. Um túnel dividido na ligação partilhada pode estreitar o que passa, mas não pode dar a cada sessão a sua própria tabela. Chegar lá cedo é mais barato do que descobri-lo depois de três tentativas de contorno.
É essa a decisão a tomar explicitamente em vez de remendar à volta. Uma tabela de rotas, uma lista de resolvedores, um perfil de firewall: tudo o resto decorre daí, e a correção que o respeita continuará a funcionar no mês seguinte.