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


14

많은 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
실제 문제를 해결하는 데 중점을두기 위해 귀하의 질문을 약간 편집했습니다. XY 문제를 참조하십시오 .
나는 말한다 Reinstate Monica

NLA는 해당 네트워크 어댑터에 지정된 기본 게이트웨이의 MAC 주소를 기반으로 네트워크를 식별합니다. 이 컴퓨터에서 라우터에 액세스 할 수 없습니까? 문제가 짧은 시간에 여러 대의 컴퓨터에 영향을 미치는 것 같습니까? 아니면 하루에 한 명의 사용자 만 있고 다른 사용자가 완전히 다른 시간에 있습니까?
나는

아마도 레지스트리에서 해당 위치의 주위에 컴퓨터 \ HKEY_LOCAL_MACHINE \ SOFTWARE \ 마이크로 소프트 \ 윈도우 NT를 \ CurrentVersion \ NetworkList \ 서명 \ 관리되지 않는 또는 적어도 볼 - 볼 경우 예상 무엇 DefaultGatewayMAC 및 DNSSuffix 경기
로스

PaulH-잠시 후 답변을 확인하십시오. 이것이 방법 1 섹션에 넣었을 때 프로덕션 환경에서 다소 성공을 거두었 지만 , 답변 의 방법 2 섹션에 대한 자세한 내용도 제공했습니다 . 이 문제에 대해 도움이 될만한 솔루션을 찾으시기 바랍니다.
Pimp Juice IT

답변:


5

방법 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

출처


첫 번째 방법은 유망 해 보입니다. NLA 서비스를 다시 시작 해야하는 다른 방법에 대해서는 확실하지 않습니다. 왜냐하면 항상 문제를 해결하기 때문에 서비스를 다시 시작하는 것이 해결책인지 다른 조치인지 알기가 어렵 기 때문입니다. 이제 테스트를하기 위해 잘못하고있는 머신이 필요합니다 ....
Reinstate Monica

@TwistyImpersonator 예, 방법 1은 내가 사용한 방법이며 시작시 실행되도록합니다. 이 경우에는 4 개의 NIC가있는 Hyper-V 가상 호스트 서버이며 시작시 실행되도록하여 특정 시스템의 문제를 해결했습니다. 네트워크 스위치 또는 라우터 재부팅으로 인해 다른 시간이 발생했다고 생각하고 가상 호스트 서버를 다시 시작하지 않고 스크립트를 수동으로 실행하여 문제를 해결했습니다. 나는 질문을 발견하고 내가 사용한 솔루션과 관련이 있고 잠재적으로 도움이되는 다른 인용 된 리소스를 게시했습니다.
Pimp Juice IT

나는 당신이 현상금을 넣는 것을 보았지만 OP가 답을 얻는 것보다는 그것이 당신의 필요에 대한 것이라는 것을 알지 못했을 것입니다. 아는 것도 좋습니다.
Pimp Juice IT

0

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

Services.msc

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


흠, 이것이 도메인 환경에서 또는 신뢰할 수있는 네트워크와 신뢰할 수없는 네트워크 사이에서 랩톱을 사용할 때 좋은 아이디어인지 확실하지 않습니다. 이러한 시나리오 중 하나에 대한 의견이 있으십니까?
저는

내 도메인 환경에서이 작업을 수행하고 있습니다. 잘 작동합니다. 신뢰할 수없는 환경에서 랩톱을 사용하는 경우 다른 보호 장치가 필요합니다. NLA는 당신을 저장하지 않습니다. 공유를 자동으로 비활성화하기 만하면됩니다. 랩톱에서 공유를 허용하지 않는 것이 좋습니다.
HackSlash

NLA가 없으면 직원이 랩톱을 집에 가져갈 때와 같이 시스템이 도메인과 개인 프로필간에 어떻게 전환됩니까?
나는 복구합니다 Monica Monica

NLA가 없으면 프로필이 전혀 없습니다. 이 프로필을 무엇에 사용하고 있습니까?
HackSlash

내가 관리하는 많은 시스템은 도메인 네트워크에 연결될 때 인바운드 트래픽을 허용하지만 시스템이 도메인을 떠날 때 이러한 트래픽은 차단됩니다. 심층 방어를 구현하는 방법입니다 ... 포트는 필요한 곳에서만 열리고 다른 곳에서는 닫힙니다.
나는 복구합니다 Monica Monica
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.