شبكة 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.
الأمر الثاني يخبرك ما إذا كانت تلك السياسة تُسلَّم من نطاق بدلًا من أن تُكتب محليًا. إذا ظهرت في التقرير مع كائن نهج مجموعة فائز، فإن تحرير القيمة المحلية إصلاح مؤقت يرتد عند التحديث التالي، والنقاش يعود إلى من يملك السياسة.
الأمر الثالث يغطي الآلية الأخرى. مزوّد بيانات الاعتماد أو الوصول إلى الشبكة الذي يثبّت وحدة تسجيل دخول يمكنه كبت الإدخال أثناء عمله، كما تسجّل بعض العملاء مكوّنًا يبدأ قبل تسجيل الدخول ويحتفظ بمطالبة على شاشة تسجيل الدخول. تعطيل تلك الخدمة يعيد التبديل، ويزيل أيضًا وظائف ما قبل تسجيل الدخول أو تقييم الحالة التي توجد الوحدة لتقديمها.
| 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
إذا كان الحسابان يحتاجان فعلًا إلى مساري شبكة مختلفين في الوقت نفسه، فالجواب الصادق جهازان، أو جهازان افتراضيان، أو سياسة لا يُطلب فيها إلا مسار واحد. النفق المنقسم على الاتصال المشترك يمكنه تضييق ما يتحرك، لكنه لا يستطيع منح كل جلسة جدولها. الوصول إلى ذلك مبكرًا أرخص من اكتشافه بعد ثلاث محاولات للالتفاف.
هذا هو القرار الذي يجب اتخاذه صراحةً بدلًا من الترقيع حوله. جدول توجيه واحد، وقائمة محلِّلات واحدة، وملف جدار ناري واحد: كل شيء آخر يتبع ذلك، والإصلاح الذي يحترمه سيظل يعمل الشهر المقبل.