Една VPN, два акаунта в Windows: защо другият сеанс се чупи
Маршрутите и резолверите са за цялата машина, затова тунелът на един акаунт пренасочва останалите. После открийте коя политика или модул за вход е премахнал елемента за превключване на потребител.
Двама души са влезли в системата, единият се свързва с корпоративния тунел, а браузърът на другия акаунт спира да зарежда страници, които са били наред преди минута. На същата машина елементът за превключване на потребител също е изчезнал от екрана за вход, така че вторият човек не може да се върне към своя сеанс. Проследяването на това от втория сеанс навън е най-бързият начин да го разберете, защото нищо във връзката на първия потребител не е скрито и нищо в проблема на втория потребител не е загадка, щом видите кои обекти са споделени.
Започнете от сеанса, който се счупи
Отидете на работния плот на втория акаунт, не на първия. Отворете там терминал и погледнете таблицата с маршрути и списъка с резолвери, докато другият сеанс е свързан. Всичко, което виждате, принадлежи на машината, а не на другия потребител, и това е първата следа.
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, елементът е скрит от политика, а пътят в груповата политика е Конфигурация на компютъра, Административни шаблони, Система, Вход и настройката, наречена за скриване на точките за бързо превключване на потребители. Задайте я на „Не е конфигурирана“ и обновете с gpupdate /force.
Втората команда ви казва дали тази политика се доставя от домейн, вместо да е записана локално. Ако се появи в отчета с печелещ GPO, редактирането на локалната стойност е временна поправка, която се връща при следващото обновяване, и разговорът е с притежателя на политиката.
Третата команда покрива другия механизъм. Доставчик на идентификационни данни или мрежов достъп, който инсталира модул за вход, може да потиска елемента, докато работи, а някои клиенти също регистрират компонент, който стартира преди вход и държи заявка на екрана за вход. Изключването на тази услуга възстановява превключването, но също премахва функциите преди вход или проверка на състоянието, за които модулът съществува.
| 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 |
Променете го, без да се заключите отвън
Дръжте един административен сеанс отворен, докато работите, и никога не правете промяна на екрана за вход на машина, до която можете да стигнете само през този екран. Първо излезте от другите сеанси, приложете промяната, обновете и след това тествайте с превключване на потребители, а не с рестартиране.
Запишете кои функции за проверка на състоянието сте изключили. Актуализация на клиента може да преинсталира или включи отново модула за вход и симптомът се връща без очевидна причина, обикновено по средата на прозорец за поддръжка, когато никой не помни предишната промяна.
На управлявано устройство приемете, че настройката се доставя отгоре. Проверката на отчета за политиката първо спестява час локални редакции, които се връщат. Тя също ви казва кого да питате, когато отговорът е „не“. Заявка, която назовава печелещата политика, се решава два пъти по-бързо от такава, която описва ключ в регистъра, който някой вече е променил.
Проверете двата акаунта и изберете модела
Тествайте резултата в реда, в който двамата потребители го изживяват. Влезте като втория акаунт, докато първият е изключен, потвърдете нормален достъп, след това свържете тунела на първия акаунт и потвърдете, че очакваният път на втория акаунт все още е този, който сте предвидили.
qwinsta
Get-NetRoute -DestinationPrefix 0.0.0.0/0 | Select-Object InterfaceAlias,NextHop,RouteMetric
Test-NetConnection -ComputerName intranet.example.internal -Port 443
Ако двата акаунта наистина се нуждаят от различни мрежови пътища едновременно, честният отговор е две машини, две виртуални машини или политика, при която е нужен само един път. Разделен тунел върху споделената връзка може да стесни какво се движи, но не може да даде на всеки сеанс собствена таблица. Да стигнете дотам рано е по-евтино, отколкото да го откриете след три опита за заобикаляне.
Това е решението, което трябва да се вземе явно, вместо да се кърпи наоколо. Една таблица с маршрути, един списък с резолвери, един профил на защитната стена: всичко останало следва от това и поправката, която го уважава, ще работи и следващия месец.