Спосіб 1
Один із способів я вирішував цю проблему в критичній системі Windows Server в одному середовищі, яке я підтримую, - це пакетний сценарій, який використовує Set-NetConnectionProfile і netsh , і явно встановив кожен надійний NIC / адаптер на пристрої приватним при запуску системи з Використання та опція планувальника завдань .Run whether user is logged on or not
Run 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 необхідну інформацію, щоб правильно розмістити місцезнаходження.
Використання локальної політики безпеки
Попередження: Це слід використовувати лише в тому випадку, якщо комп'ютер ніколи не матиме жодних підключень у загальнодоступній локальній мережі. В іншому випадку ви ризикуєте застосувати менш захищений профіль брандмауера до вашого загальнодоступного з'єднання.
Відкрийте " Місцева політика безпеки ".
Клацніть на " Політики мережевого списку менеджерів " у лівій області. (Цей вибір похований у старих версіях Windows.)
Двічі клацніть на " Невідомі мережі " на правій панелі.
Для комп’ютерів, які існують лише в приватній мережі, потрібно встановити " Тип місцезнаходження " на " приватне ".
Використання властивостей мережевого підключення
Йдеться не про додавання шлюзу IP, оскільки це не працює належним чином на багатодомному сервері. Натомість ми додамо суфікс DNS, щоб NLA міг правильно знайти контролер домену, і саме так він значить розташування як "Доменна мережа".
Перейдіть до мережевих підключень (у Центрі мереж та обміну натисніть "Змінити налаштування адаптера".)
Перейдіть у власність одного мережевого з'єднання, позначеного як " Невідоме ", але в приватній локальній мережі.
Перейдіть до властивостей для IPv4 .
Натисніть кнопку " Додатково ...".
Виберіть вкладку DNS .
Введіть своє доменне ім’я у текстове поле " Суфікс DNS для цього з'єднання: ".
Вимкніть, а потім увімкніть з'єднання, щоб отримати NLA повторно ідентифікувати місцезнаходження. Після ввімкнення з'єднання Статус повинен змінити доменне ім’я та категорію мережі на "Доменна мережа". Залежно від налаштувань, ймовірно, вам потрібно буде "зафіксувати" одне з'єднання, щоб отримати всі пов'язані з ним з'єднання, щоб побачити домен.
Перехід від приватного до загальнодоступного
Є два загальних способи змусити НЛО позначити з'єднання як загальнодоступне. Перше - використовувати правило брандмауера для блокування NLA, щоб у нього не було іншого вибору, крім використання місця за замовчуванням. Інша полягає у використанні реєстру для відключення NLA підключення.
Використання брандмауера
Я цього не перевіряв, але теорія здається здоровою.
Відкрийте " Брандмауер Windows з розширеною безпекою " (тобто wf.msc
).
Перейдіть до правил вихідних даних .
Клацніть на " Нове правило ...".
Використовуйте ці налаштування:
- Тип правила: Спеціальне
- Програма: Виберіть "Усі програми" та натисніть "Налаштувати ...". Виберіть "Інформація про мережеве місцезнаходження" (коротке ім'я - NlaSvc).
- Протокол і порти: Тип протоколу = Будь-який.
- Область застосування: Локальні IP-адреси = Введіть усі ваші загальнодоступні IP-адреси. Двічі перевірте наявність з'єднань з декількома IP-адресами.
- Дія: Блок
- Профіль: Усі
Після ввімкнення правила відключіть, а потім увімкніть мережеве з'єднання для отримання NLA для повторної ідентифікації місця.
Використання Реєстру
У мене не було цієї роботи для мене, але моя обставина може відрізнятися від вашої. Пошук правильного номера підключення трохи ударив або пропустив, оскільки записів набагато більше, ніж можна було б очікувати.
Запустити regedit
Йти до HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
Внизу ви повинні побачити кілька клавіш із позначкою 0000, 0001, 0002 і т.д.… Перегляньте їх і знайдіть адаптери, де ви хочете відключити NLA.
Для кожного з адаптерів додайте нове значення DWORD під назвою "* NdisDeviceType" та встановіть його на 1 (переконайтеся, що ви отримали * на початку імені).
Виходить драматичне
Профілі локації містяться в реєстрі, і видаляти їх, а Windows дозволяти відновлювати їх, видається нешкідливим. Ви, безумовно, захочете спершу створити резервну копію реєстру, і вам, ймовірно, доведеться підключитися до сервера через KVM, а не віддалений (RDP). Я не буду брати на себе ніякої відповідальності, якщо ви виберете цей крок, оскільки я в першу чергу ставлю це для довідки.
Розташування профілів:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
джерело