Windows NLA가 로컬 네트워크를 새로운 미확인 네트워크로 반복해서 감지하지 못하도록 차단 Asus RTN-66U

많은 Windows 10 및 7 PC로 소규모 비즈니스 네트워크를 관리하고 있습니다. 간헐적이지만 자주 사용자는 더 이상 다른 동료와 공유 폴더에 액세스 할 수 없다고 불평합니다. 빠른 문제 해결은 문제가 악명 높은 “식별되지 않은 네트워크 감지”로 인한 것으로 확인한 다음 “개인”네트워크 프로파일 대신 “공용”네트워크 프로파일을 적용하므로 홈 그룹 / 파일 공유 등이 작동하지 않습니다. 내 검색에서 이것은 많은 사용자에게 일반적인 문제입니다. 제안 된 해결책이 보이지 않습니다.

환경:

  • 모든 Windows PC는 유선 이더넷을 통해 연결됩니다 (Wifi NIC가있을 수 있음)
  • 이들은 모두 동일한 10.10.10.x 서브넷에있는 48 포트 Avaya L2 관리 형 스위치에 연결되어 있습니다.
  • 스위치가 Asus RTN-66U 홈 라우터에 연결되었습니다
  • 아수스 라우터는 케이블 모뎀에 연결
  • Asus 라우터는 Windows 시스템에 DHCP를 제공합니다
  • 각 Windows PC에 대해 DHCP 예약으로 라우터를 구성했습니다. 즉, 부팅시 PC는 항상 동일한 IP 주소를 갖습니다.
  • 도메인 컨트롤러 없음

문제:

모든 Windows 컴퓨터의 활성 네트워크 프로필 = 개인을 구성했지만 자주 (2 주 정도 정도) 공용으로 되돌아가 파일 공유 등을 방지합니다.

시도한 수정 :

각 Windows PC에서 로컬 그룹 정책을 수정했습니다 Computer Configuration->Security Settings->Network List Manager Policies.

  • 미확인 네트워크 = 개인
  • 네트워크 식별 = 개인

관찰 :

문제는 Windows NLA (Network Location Awareness) 서비스가 새 네트워크 프로필을 생성하여 새 네트워크 프로필을 만든 다음 기본적으로 공개로 설정하는 새 네트워크를 감지하는 것입니다. . 많은 컴퓨터가 Windows가 새로운 미확인 네트워크를 여러 번 감지했음을 나타냅니다. 즉, “네트워크 14″를 표시합니다. 즉, 14 개의 서로 다른 네트워크 프로파일이 있습니다. 여기 레지스트리에서 프로파일을 검토 할 때 이러한 여러 프로파일이 표시됩니다
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles.

14 개의 프로파일은 모두 컴퓨터가 실제로 위에서 설명한 동일한 네트워크에 연결된 경우입니다.

NLA가 네트워크에 대해 고유 한 식별자를 생성하는 방법과 그것이 새로운 네트워크를 발견 한 이유를 정확히 설명하는 리소스를 찾지 못했습니다.

질문:

Windows가 로컬 네트워크를 새 네트워크로 잘못 식별하지 못하게하려면 어떻게합니까? 네트워크의 고유 식별자를 생성하기 위해 NLA가 수행하는 단계를 알고 있다면 도움이 될 것입니까?



답변

방법 1

나는 유지 나는 한 환경에서 중요한 Windows 서버 시스템에서이 문제를 처리 한 방법 중 하나는 사용하는 배치 스크립트로했다 설정 NetConnectionProfilenetsh를을 , 명시 적으로 각각에 NIC / 시스템에 어댑터를 신뢰할 설정 민간 에서 시스템 시작 과 함께 및 옵션을 사용하는 작업 스케줄러 .Run whether user is logged on or notRun with highest privileges


참고 : 현상금 메모에는 ” 솔루션이 구현하기 위해 네트워크 연결이 끊어지지 않아야합니다 “라고 표시되어 있지만 이 문제가 발생하면 네트워크 중단이 발생하기 때문에 시스템이 이 동일한 스크립트를 실행하는 것만으로도 문제를 신속하게 해결하고 OS 컴퓨터 네트워크 액세스를 정상적으로 작동하고 예상 한 순서로 다시 가져올 수 있습니다.

또한 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에 제공합니다.

로컬 보안 정책 사용

주의 : 컴퓨터가 공용 LAN에 연결되어 있지 않은 경우에만 사용해야합니다. 그렇지 않으면 공용 연결에 보안 수준이 낮은 방화벽 프로필이 적용될 위험이 있습니다.

  1. 로컬 보안 정책을여십시오 .

  2. 왼쪽 창에서 ” 네트워크 목록 관리자 정책 “을 클릭하십시오 . (이 선택은 이전 버전의 Windows에 묻혀 있습니다.)

  3. 오른쪽 창에서 ” 식별되지 않은 네트워크 “를 두 번 클릭하십시오 .

  4. 개인 네트워크에만있는 컴퓨터의 경우 ” 위치 유형 “을 ” 개인 ” 으로 설정해도 됩니다.

네트워크 연결 속성 사용

멀티 홈 서버에서 제대로 작동하지 않으므로 게이트웨이 IP를 추가하는 것이 아닙니다. 대신 NLA가 위치를 “도메인 네트워크”로 표시하는 방법으로 도메인 컨트롤러를 올바르게 찾을 수 있도록 DNS 접미사를 추가합니다.

  1. 네트워크 연결로 이동 하십시오 (네트워크 및 공유 센터에서 “어댑터 설정 변경”을 클릭하십시오).

  2. 알 수 없음 “으로 표시되어 있지만 개인 LAN에있는 하나의 네트워크 연결 의 속성으로 이동하십시오 .

  3. IPv4 속성으로 이동하십시오 .

  4. 고급 …”버튼을 클릭하십시오 .

  5. DNS 탭을 선택 하십시오.

  6. 이 연결의 DNS 접미사 : ” 텍스트 상자에 도메인 이름을 입력하십시오 .

NLA가 위치를 다시 식별하도록 연결을 비활성화 한 다음 활성화합니다. 연결을 활성화 한 후 상태는 도메인 이름으로 변경되고 네트워크 범주는 “도메인 네트워크”로 변경되어야합니다. 설정에 따라 도메인을 확인하기 위해 모든 관련 연결을 가져 오려면 하나의 연결 만 “고정”하면됩니다.

비공개에서 공개로 이동

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. 각 어댑터에 대해 “* NdisDeviceType”이라는 새 DWORD 값을 추가하고 1로 설정하십시오 (이름 시작 부분에 *가 있는지 확인하십시오).

과감한

위치 프로필은 레지스트리에 저장되어 있으며 삭제하고 Windows를 다시 작성하는 것은 무해한 것으로 보입니다. 레지스트리를 먼저 백업해야하며 원격 (RDP)이 아닌 KVM을 통해 서버에 연결되어 있어야합니다. 이 단계를 기본적으로 여기에두기 때문에이 단계를 선택하면 책임을지지 않습니다.

프로파일의 위치는 다음과 같습니다.

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

출처


답변

나는 단지 하나의 특정 시스템에서만이 문제를 겪었습니다. 재부팅 할 때마다 모든 것이 깨집니다. 언급 한 모든 솔루션을 시도했습니다. 다른 모든 기능을 다 사용한 후 “네트워크 위치 인식”서비스를 사용하지 않도록 설정했습니다. 내가 말할 수있는 것은 필요하지 않습니다. 이것은 내 문제를 영구적으로 해결했습니다. 내가 발견 한 유일한 부작용은 “네트워크 및 공유 센터”창이 재미있어 보인다는 것입니다. 이 서비스는 Windows 7 이전에는 존재하지 않았으며 전혀 유용하지 않습니다.

Services.msc

“네트워크 위치 인식”, 시작 유형 = “사용 안 함”