Способ 1
Одним из способов решения этой проблемы в критически важной системе Windows Server в одной среде, которую я поддерживаю, был пакетный скрипт, который использует Set-NetConnectionProfile а также Netsh и явно установите для каждого доверенного сетевого адаптера / адаптера на компьютере значение частный в запуск системы с Диспетчер задач с помощью 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 не может определить местоположение соединения, она называет его
«Неопознанный» и помечает местоположение как Общедоступное. Выбирает Public
потому что это наиболее безопасно, и вы бы не хотели ничего меньше, если
соединение на DMZ.
Есть два простых способа это исправить. Один использует локальную безопасность
Политика для изменения местоположения по умолчанию неопознанных сетей.
второй метод использует изменение свойств сетевого подключения к
предоставить NLA информацию, необходимую для правильного определения местоположения.
Использование локальной политики безопасности
Внимание: Это следует использовать только в том случае, если компьютер никогда не будет подключен к публичной локальной сети. В противном случае вы рискуете
использование менее защищенного профиля брандмауэра для вашей публики
подключение.
Открыто " Политика локальной безопасности ».
Нажмите на " Политики диспетчера списка сетей "на левой панели. (Этот выбор скрыт в более старых версиях Windows.)
Двойной клик на " Неопознанные Сети "на правой панели.
Для компьютеров, которые существуют только в частной сети, это нормально, чтобы установить " Тип местоположения "до" частный ».
Использование свойств сетевого подключения
Речь идет не о добавлении IP-адреса шлюза, так как он не работает должным образом
многодомный сервер. Вместо этого мы будем добавлять суффикс DNS, чтобы
NLA может правильно найти контроллер домена, который, как он знает,
пометить местоположение как «Доменная сеть».
Идти к Сетевые соединения (в Центре управления сетями и общим доступом нажмите «Изменить настройки адаптера».)
Перейти к СВОЙСТВА s одного сетевого подключения помечены как " неопознанный "но в частной локальной сети.
Перейти к свойства для IPv4 ,
Нажмите " продвинутый ... ».
Выберите DNS Вкладка.
Введите свое доменное имя в текстовое поле для " DNS-суффикс для этого соединения: ».
Отключите и затем включите соединение, чтобы заставить NLA повторно идентифицировать
место нахождения. После включения соединения статус должен измениться на
доменное имя и категория сети на «Доменная сеть». В зависимости от
ваши настройки, вероятно, вам нужно только "исправить" одно соединение с
получить все связанные соединения, чтобы увидеть домен.
Переход от частного к общему
Существует два распространенных способа заставить 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
источник