Не дозволяйте Windows NLA повторно виявляти локальну мережу як нову, невстановлену мережу


14

Я керую мережею малого бізнесу з кількома комп'ютерами Windows 10 та 7. Користувачі з перервами, але досить часто скаржаться, що вони не можуть більше отримувати доступ до спільних папок з іншими співробітниками. Швидке усунення несправностей визначає, що проблема пов’язана з сумнозвісною "Невідомою мережею виявлено", яка потім застосовує мережу "Загальнодоступний" мережевий профіль замість "Приватного" мережевого профілю, таким чином обмін домашньою групою / файлами тощо не працює. З мого пошуку це є загальною проблемою для багатьох користувачів. Я не бачу запропонованих рішень, які б спрацювали.

Навколишнє середовище:

  • Всі ПК з Windows підключені через провідний Ethernet (хоча вони можуть мати мережу Wi-Fi)
  • Всі вони підключені до 48-портового керованого комутатора Avaya L2, все в тій же підмережі 10.10.10.x
  • Вимикач підключений до домашнього маршрутизатора Asus RTN-66U
  • Маршрутизатор Asus підключається до кабельного модему
  • Маршрутизатор Asus забезпечує DHCP для машин Windows
  • Я налаштував маршрутизатор із застереженнями DHCP для кожного ПК з Windows, тобто ПК завжди отримують однакову IP-адресу під час завантаження
  • Немає контролера домену

Проблема:

Незважаючи на те, що я налаштував усі активні мережеві профілі на машинах Windows = приватні, вони часто (кожні пару тижнів або більше) повертаються до загальнодоступних, що перешкоджає обміну файлами тощо.

Спроба виправлення:

На кожному ПК з Windows я змінив локальну групову політику Computer Configuration->Security Settings->Network List Manager Policies:

  • Невідомі мережі = приватні
  • Ідентифікація мереж = приватне

Спостереження:

Я вважаю, що проблема полягає в тому, що послуга інформування про локальну мережу Windows (NLA) виявляє нову мережу, яка спричиняє створення нового мережевого профілю, який потім за замовчуванням є загальнодоступним (навіть якщо вище я налаштував локальну групову політику за замовчуванням на приватну) . Багато комп’ютерів показують, що Windows багато разів виявляла нову Невідомі мережі, тобто вони показують "Мережа 14", тобто є 14 різних мережевих профілів. Я бачу ці кілька профілів при розгляді профілів тут в реєстрі: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles.

Усі 14 профілів - це коли комп'ютер був фактично підключений до тієї самої мережі, як описано вище.

Мені не вдалося знайти ресурс, який би точно описував, як NLA створює унікальний ідентифікатор для мережі, і, таким чином, чому він може виявити, що виявив нову мережу.

Питання:

Як я можу запобігти неправильному визначенню локальної мережі Windows як нової мережі? Можливо, це допоможе, якби я знав, якими кроками слід NLA для створення унікального ідентифікатора для мережі?


1
Я трохи відредагував ваше запитання, щоб допомогти йому зосередитись на питанні щодо вирішення фактичної проблеми. Дивіться проблему XY .
Я кажу, відновіть Моніку

NLA ідентифікує мережу на основі MAC-адреси шлюзу за замовчуванням, визначеного для цього мережного адаптера. Чи можливо ваш маршрутизатор став недоступним для цих комп'ютерів? Чи здається, що ця проблема впливає на кілька комп’ютерів за короткий проміжок часу, або це лише один користувач на день, а потім інший користувач у зовсім інший час?
Я кажу, відновіть Моніку

Можливо, подивіться на Комп'ютер \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkList \ Signatures \ Unmanaged або принаймні навколо цього місця в реєстрі - і подивіться, чи DefaultGatewayMAC та DNSSuffix відповідають тому, що ви очікуєте
Росс

PaulH - Ознайомтеся з моєю відповіддю, коли з’явиться момент, це те, що я використав із досить солідним успіхом у виробничому середовищі, коли я виклав у розділі Метод 1, але також детальніше розповів про розділ Метод 2 своєї відповіді. Я сподіваюся, що ви знайдете будь-яке з цих рішень настільки ж корисним, як і я для цього питання.
Pimp Juice IT

Відповіді:


5

Спосіб 1

Один із способів я вирішував цю проблему в критичній системі Windows Server в одному середовищі, яке я підтримую, - це пакетний сценарій, який використовує Set-NetConnectionProfile і netsh , і явно встановив кожен надійний NIC / адаптер на пристрої приватним при запуску системи з Використання та опція планувальника завдань .Run whether user is logged on or notRun with highest privileges

введіть тут опис зображення введіть тут опис зображення

Примітка. Хоча в примітці про щедрість зазначено, що " Рішення не повинно спричиняти втрату підключення до мережі для впровадження ", я хотів зазначити, що оскільки при виникненні цієї проблеми у вас все-таки виникає порушення мережі, що запуск цього сценарію, якщо проблема виникає випадковим чином, коли система не перезавантажили, що просто запустивши цей самий сценарій, тоді все одно швидко вирішите проблему і повернете машинну мережу доступу до ОС у робочому та очікуваному порядку.

Крім того, ви можете використовувати Get-NetConnectionProfile для отримання імен псевдонімів NIC та номерів індексів, які можна помістити в прикладний пакетний сценарій нижче для ваших потреб та / або систем.

Пакетний сценарій

@ECHO ON

::: The below PowerShell will set all the nework adapters to private rather than public and unknown as happens.
:DynamicPSScriptBuild
SET PSScript=%temp%\%~n0.ps1
IF EXIST "%PSScript%" DEL /Q /F "%PSScript%"
ECHO Set-NetConnectionProfile -InterfaceIndex 12 -NetworkCategory Private>>"%PSScript%" 
ECHO Set-NetConnectionProfile -InterfaceIndex 20 -NetworkCategory Private>>"%PSScript%" 
ECHO Set-NetConnectionProfile -InterfaceIndex 22 -NetworkCategory Private>>"%PSScript%" 
ECHO Set-NetConnectionProfile -InterfaceIndex 24 -NetworkCategory Private>>"%PSScript%"

:PowerShell
SET PowerShellDir=C:\Windows\System32\WindowsPowerShell\v1.0
CD /D "%PowerShellDir%"
Powershell -ExecutionPolicy Bypass -Command "& '%PSScript%'"

:: The below will disable and then re-enable each NIC one-by-one so the unidentfied goes away after set to "private" above
:ResetNICs
SET Array="Ethernet", "Ethernet 2", "Ethernet 3", "Ethernet 4"
FOR %%A IN (%Array%) DO (
    netsh int set int "%%~A" admin=disable
    netsh int set int "%%~A" admin=enable
)
EXIT

Нижче наведено декілька інших методів, один із численних - те, що ви спробували, але я залишив його там для інших, хто натрапив на цю посаду на випадок, якщо це їм допоможе, але це кілька способів запобігти цьому цілком можливо, але є завжди буде переломним і недоліком будь-якого методу, який ви вирішите використовувати, тому підберіть свою отруту і випробуйте відповідно.

Спосіб 2 (кілька методів)

Невстановлена ​​мережа - перехід від загальнодоступного до приватного чи доменного

Якщо NLA не може визначити місце підключення, він називає його "Невідоме" та позначає місцезнаходження загальнодоступним. Він вибирає загальнодоступний, оскільки це найбезпечніше, і ви б не хотіли нічого менше, якщо з'єднання знаходиться на DMZ.

Є два простих способи виправити це. Один використовує локальну політику безпеки для зміни місця за замовчуванням невстановлених мереж. Другий метод використовує зміну властивостей мережевого з'єднання, щоб надати NLA необхідну інформацію, щоб правильно розмістити місцезнаходження.

Використання локальної політики безпеки

Попередження: Це слід використовувати лише в тому випадку, якщо комп'ютер ніколи не матиме жодних підключень у загальнодоступній локальній мережі. В іншому випадку ви ризикуєте застосувати менш захищений профіль брандмауера до вашого загальнодоступного з'єднання.

  1. Відкрийте " Місцева політика безпеки ".

  2. Клацніть на " Політики мережевого списку менеджерів " у лівій області. (Цей вибір похований у старих версіях Windows.)

  3. Двічі клацніть на " Невідомі мережі " на правій панелі.

  4. Для комп’ютерів, які існують лише в приватній мережі, потрібно встановити " Тип місцезнаходження " на " приватне ".

    введіть тут опис зображення

Використання властивостей мережевого підключення

Йдеться не про додавання шлюзу IP, оскільки це не працює належним чином на багатодомному сервері. Натомість ми додамо суфікс DNS, щоб NLA міг правильно знайти контролер домену, і саме так він значить розташування як "Доменна мережа".

  1. Перейдіть до мережевих підключень (у Центрі мереж та обміну натисніть "Змінити налаштування адаптера".)

  2. Перейдіть у власність одного мережевого з'єднання, позначеного як " Невідоме ", але в приватній локальній мережі.

  3. Перейдіть до властивостей для IPv4 .

  4. Натисніть кнопку " Додатково ...".

  5. Виберіть вкладку DNS .

  6. Введіть своє доменне ім’я у текстове поле " Суфікс DNS для цього з'єднання: ".

Вимкніть, а потім увімкніть з'єднання, щоб отримати NLA повторно ідентифікувати місцезнаходження. Після ввімкнення з'єднання Статус повинен змінити доменне ім’я та категорію мережі на "Доменна мережа". Залежно від налаштувань, ймовірно, вам потрібно буде "зафіксувати" одне з'єднання, щоб отримати всі пов'язані з ним з'єднання, щоб побачити домен.

Перехід від приватного до загальнодоступного

Є два загальних способи змусити НЛО позначити з'єднання як загальнодоступне. Перше - використовувати правило брандмауера для блокування NLA, щоб у нього не було іншого вибору, крім використання місця за замовчуванням. Інша полягає у використанні реєстру для відключення NLA підключення.

Використання брандмауера

Я цього не перевіряв, але теорія здається здоровою.

  1. Відкрийте " Брандмауер Windows з розширеною безпекою " (тобто wf.msc).

  2. Перейдіть до правил вихідних даних .

  3. Клацніть на " Нове правило ...".

  4. Використовуйте ці налаштування:

    • Тип правила: Спеціальне
    • Програма: Виберіть "Усі програми" та натисніть "Налаштувати ...". Виберіть "Інформація про мережеве місцезнаходження" (коротке ім'я - NlaSvc).
    • Протокол і порти: Тип протоколу = Будь-який.
    • Область застосування: Локальні IP-адреси = Введіть усі ваші загальнодоступні IP-адреси. Двічі перевірте наявність з'єднань з декількома IP-адресами.
    • Дія: Блок
    • Профіль: Усі
  5. Після ввімкнення правила відключіть, а потім увімкніть мережеве з'єднання для отримання NLA для повторної ідентифікації місця.

Використання Реєстру

У мене не було цієї роботи для мене, але моя обставина може відрізнятися від вашої. Пошук правильного номера підключення трохи ударив або пропустив, оскільки записів набагато більше, ніж можна було б очікувати.

  1. Запустити regedit

  2. Йти до HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

  3. Внизу ви повинні побачити кілька клавіш із позначкою 0000, 0001, 0002 і т.д.… Перегляньте їх і знайдіть адаптери, де ви хочете відключити NLA.

  4. Для кожного з адаптерів додайте нове значення DWORD під назвою "* NdisDeviceType" та встановіть його на 1 (переконайтеся, що ви отримали * на початку імені).

Виходить драматичне

Профілі локації містяться в реєстрі, і видаляти їх, а Windows дозволяти відновлювати їх, видається нешкідливим. Ви, безумовно, захочете спершу створити резервну копію реєстру, і вам, ймовірно, доведеться підключитися до сервера через KVM, а не віддалений (RDP). Я не буду брати на себе ніякої відповідальності, якщо ви виберете цей крок, оскільки я в першу чергу ставлю це для довідки.

Розташування профілів:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles

джерело


Перший метод виглядає багатообіцяючим. Я не впевнений в інших методах, які передбачають перезапуск служби NLA, тому що це завжди вирішує проблему, тому важко дізнатися, чи було перезапуск служби рішенням, або інша дія. Тепер мені просто потрібна машина, яка робить це неправильно для тестування на ....
Я кажу, відновіть Моніку

@TwistyImpersonator Так, метод 1 - це метод, який я використовував, і його просто запустіть як запуск. У цьому випадку це віртуальний хост-сервер Hyper-V з 4 NIC, і забезпечення його роботи під час запуску поки що вирішило проблему для мене саме з цією системою. Я думаю, що це сталося в інший раз через мережевий комутатор або перезавантаження маршрутизатора, а не перезапуск віртуального хост-сервера, я просто запустив сценарій вручну, і це вирішило проблему. Я помітив запитання і розмістив використане нами рішення та інший цитований ресурс, який виглядав релевантним та потенційно корисним.
Pimp Juice IT

Я помітив, що ви поклали щедроту, але, мабуть, я не зрозумів, що це для ваших потреб, а не просто намагався отримати відповідь ОП. Це добре також знати.
Pimp Juice IT

0

Я мав цю проблему нескінченно лише в одній конкретній системі. Це порушило б усе при кожному перезавантаженні. Я спробував усі згадані вами рішення. Після вичерпання всього іншого я вдався до відключення послуги «Інформація про місцезнаходження в мережі». З того, що я можу сказати, це не потрібно. Це назавжди вирішило мою проблему. Єдиний побічний ефект, який я помітив, - це те, що вікно "Центр мережі та обміну" виглядає смішно. Ця служба не існувала до Windows 7 і зовсім не корисна для мене.

Services.msc

"Поінформованість про місцезнаходження в мережі", Тип запуску = "Відключено"


Гммм, не впевнений, що це гарна ідея в доменному середовищі ... або коли ви берете ноутбук між надійними та ненадійними мережами. Будь-який відгук про будь-який із цих сценаріїв?
Я кажу: Відновіть Моніку

Я роблю це у своєму доменному середовищі. Чудово працює. Якщо ви використовуєте ноутбук у ненадійному середовищі, вам потрібно встановити інші захисні засоби. NLA не врятує вас. Все, що він міг зробити, це автоматично відключити акції. Я б запропонував не допускати жодних акцій на ноутбуках.
HackSlash

Як без участі в офісі місцевого самоврядування, як ваші системи перемикаються між доменом та приватними профілями, наприклад, коли працівник забирає ноутбук додому?
Я кажу, відновіть Моніку

Без НЛО взагалі немає профілів. Для чого ви використовуєте ці профілі?
HackSlash

Багато систем, якими я керую, дозволяють вхідний трафік при підключенні до доменної мережі, але такий трафік блокується, коли системи покидають домен. Ось як ми реалізуємо глибоку оборону ... порти відкриваються лише там, де це потрібно, і закриваються скрізь.
Я кажу, відновіть Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.