두 사람이 로그인되어 있고, 그중 한 명이 회사 터널에 연결하면 다른 계정의 브라우저가 일 분 전까지 멀쩡하던 페이지를 더 이상 불러오지 못합니다. 같은 컴퓨터에서 로그인 화면의 사용자 전환 항목도 사라져서 두 번째 사람은 자기 세션으로 돌아갈 수 없습니다. 이 문제를 두 번째 세션에서 바깥으로 따라가며 보는 것이 가장 빠른 이해 방법인데, 첫 사용자의 연결에는 숨겨진 것이 없고 어떤 객체가 공유되는지 확인하면 두 번째 사용자의 문제도 더 이상 미스터리가 아니기 때문입니다.

문제가 생긴 세션에서 시작하세요

첫 번째가 아니라 두 번째 계정의 바탕 화면으로 가세요. 거기서 터미널을 열고 다른 세션이 연결된 상태에서 라우팅 테이블과 리졸버 목록을 확인하세요. 보이는 모든 것이 다른 사용자가 아니라 컴퓨터에 속한다는 점이 첫 번째 단서입니다.

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

기본 경로가 이제 터널 인터페이스를 가리키면 두 번째 사용자의 트래픽도 그 경로를 따릅니다. 리졸버 목록에 사설 서버가 추가되었다면, 그 사용자의 조회는 터널이 끊긴 뒤 닿을 수 없는 곳으로 향합니다. 어느 쪽도 클라이언트의 버그가 아니라 하나의 공유 네트워크 스택이 낳은 결과입니다.

세 번째 명령은 두 번째 종류의 불만을 설명합니다. 어댑터가 컴퓨터의 네트워크 범주를 공용에서 사설로 바꾸면 프로필에 묶인 방화벽 규칙이 모든 계정에 동시에 적용되므로, 아침에 허용되던 응용 프로그램이 아무도 규칙을 건드리지 않았는데 오후에 차단될 수 있습니다.

연결은 사용자별이지만 네트워크는 그렇지 않습니다

Windows는 연결 객체를 그것을 만든 사용자의 프로필에 보관합니다. 그 연결이 만드는 가상 어댑터, 설치하는 경로, 그리고 등록하는 DNS 서버는 컴퓨터 전체 범위입니다. 이 분리가 제목에 나온 두 증상의 원인입니다.

첫 사용자를 로그아웃하면 보통 두 번째 사용자의 문제가 해결되는 이유도 여기서 나옵니다. 연결을 제거하면 어댑터와 경로도 함께 사라지고, 컴퓨터 전체 상태는 아무도 접속하지 않았던 때로 돌아갑니다. 이는 유용한 진단입니다. 로그아웃으로 다른 계정이 고쳐진다면 고장 난 프로필이 아니라 공유 상태를 보고 있는 것입니다.

할 수 없는 일은 두 번째 세션에 다른 라우팅 테이블을 주는 것입니다. 테이블은 하나뿐이고 어떤 두 세션이든 그것을 공유합니다. 이는 특정 클라이언트의 한계가 아니라 운영 체제의 속성입니다. 또한 다르게 가정하는 모든 설계는 계속 실패할 것이며, 그 실패는 무관한 응용 프로그램 버그처럼 보일 것입니다.

사용자 전환 항목을 제거한 원인을 이 순서로 찾으세요

빠른 사용자 전환은 전혀 다른 이유로 사라졌고, 그 해결책은 라우팅과 아무 관련이 없습니다. 네 후보를 순서대로 확인하세요. 앞의 두 가지는 몇 초 만에 되돌릴 수 있지만 뒤의 것들은 대가가 따릅니다.

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

레지스트리 값이 가장 단순한 설명입니다. 그 값이 있고 1로 되어 있으면 해당 항목은 정책으로 숨겨진 것이며, 그룹 정책 경로는 Computer Configuration, Administrative Templates, System, Logon 아래의 빠른 사용자 전환 항목 숨기기 설정입니다. 값을 Not Configured로 설정하고 gpupdate /force 명령으로 새로 고치세요.

두 번째 명령은 그 정책이 로컬에 기록된 것이 아니라 도메인에서 전달되는지 알려줍니다. 보고서에 승리한 GPO로 나타나면 로컬 값을 편집하는 것은 다음 새로 고침에 되돌아가는 임시 조치이며, 이 대화는 정책 소유자와 해야 합니다.

세 번째 명령은 다른 메커니즘을 다룹니다. 로그온 모듈을 설치하는 자격 증명 또는 네트워크 액세스 공급자는 실행 중에 해당 항목을 억제할 수 있고, 일부 클라이언트는 로그인 화면에 대한 권한을 유지하는 로그인 전 구성 요소도 등록합니다. 그 서비스를 비활성화하면 전환이 복원되지만, 모듈이 제공하려는 로그온 전 또는 posture 기능도 함께 사라집니다.

CauseHow to confirmCost of the fix
HideFastUserSwitching policyRegistry value present and set to 1None; remove the policy
Logon module serviceService running under a vendor nameLoses pre-logon and posture behaviour
GINA-era assumptionOnly relevant on very old WindowsNothing to fix; the mechanism is gone

스스로 잠기지 않고 바꾸는 방법

작업하는 동안 관리자 세션 하나를 열어 두고, 그 화면으로만 접근할 수 있는 컴퓨터에서는 로그인 화면 설정을 절대 바꾸지 마세요. 먼저 다른 세션에서 로그아웃하고 변경을 적용한 뒤 새로 고치고, 재부팅이 아니라 사용자 전환으로 테스트하세요.

비활성화한 posture 기능을 기록해 두세요. 클라이언트 업데이트가 로그온 모듈을 다시 설치하거나 재활성화할 수 있고, 그러면 증상이 뚜렷한 원인 없이 돌아옵니다. 대개 아무도 이전 변경을 기억하지 못하는 지원 시간대 한가운데에서 그렇습니다.

관리되는 장치에서는 설정이 상위에서 전달된다고 가정하세요. 정책 보고서를 먼저 확인하면 되돌아갈 로컬 편집에 한 시간을 절약할 수 있습니다. 답이 아니오일 때 누구에게 물어야 하는지도 알려줍니다. 승리한 정책을 지목한 티켓은 누군가 이미 바꾼 레지스트리 키를 설명한 티켓보다 두 배 빠르게 해결됩니다.

두 계정을 모두 확인하고 모델을 고르세요

두 사용자가 겪는 순서대로 결과를 테스트하세요. 첫 계정이 연결 해제된 상태에서 두 번째 계정으로 로그인해 정상 접근을 확인한 다음, 첫 계정의 터널을 연결하고 두 번째 계정의 예상 경로가 여전히 의도한 대로인지 확인하세요.

qwinsta
Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object InterfaceAlias,NextHop,RouteMetric
Test-NetConnection -ComputerName intranet.example.internal -Port 443

두 계정이 동시에 서로 다른 네트워크 경로를 정말로 필요로 한다면, 정직한 답은 컴퓨터 두 대, 가상 머신 두 대, 또는 하나의 경로만 요구하는 정책입니다. 공유 연결의 분할 터널은 이동하는 것을 좁힐 수는 있어도 각 세션에 자기 테이블을 줄 수는 없습니다. 세 번 우회를 시도한 뒤 알아차리는 것보다 일찍 인정하는 편이 쌉니다.

이것은 우회로 덧대는 대신 명시적으로 내려야 할 결정입니다. 라우팅 테이블 하나, 리졸버 목록 하나, 방화벽 프로필 하나. 나머지는 모두 여기서 따라오며, 이를 존중하는 해결책은 다음 달에도 작동할 것입니다.

관련 글