방법 1
나는 유지 나는 한 환경에서 중요한 Windows 서버 시스템에서이 문제를 처리 한 방법 중 하나는 사용하는 배치 스크립트로했다 설정 NetConnectionProfile 및 netsh를을 , 명시 적으로 각각에 NIC / 시스템에 어댑터를 신뢰할 설정 민간 에서 시스템 시작 과 함께 및 옵션을 사용하는 작업 스케줄러 .Run whether user is logged on or not
Run 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에 연결되어 있지 않은 경우에만 사용해야합니다. 그렇지 않으면 공용 연결에 보안 수준이 낮은 방화벽 프로필이 적용될 위험이 있습니다.
" 로컬 보안 정책 " 을여십시오 .
왼쪽 창에서 " 네트워크 목록 관리자 정책 "을 클릭하십시오 . (이 선택은 이전 버전의 Windows에 묻혀 있습니다.)
오른쪽 창에서 " 식별되지 않은 네트워크 "를 두 번 클릭하십시오 .
개인 네트워크에만있는 컴퓨터의 경우 " 위치 유형 "을 " 개인 " 으로 설정해도 됩니다.
네트워크 연결 속성 사용
멀티 홈 서버에서 제대로 작동하지 않으므로 게이트웨이 IP를 추가하는 것이 아닙니다. 대신 NLA가 위치를 "도메인 네트워크"로 표시하는 방법으로 도메인 컨트롤러를 올바르게 찾을 수 있도록 DNS 접미사를 추가합니다.
네트워크 연결로 이동 하십시오 (네트워크 및 공유 센터에서 "어댑터 설정 변경"을 클릭하십시오).
" 알 수 없음 "으로 표시되어 있지만 개인 LAN에있는 하나의 네트워크 연결 의 속성으로 이동하십시오 .
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를 비활성화하려는 어댑터를 찾으십시오.
각 어댑터에 대해 "* NdisDeviceType"이라는 새 DWORD 값을 추가하고 1로 설정하십시오 (이름 시작 부분에 *가 있는지 확인하십시오).
과감한
위치 프로필은 레지스트리에 저장되어 있으며 삭제하고 Windows를 다시 작성하는 것은 무해한 것으로 보입니다. 레지스트리를 먼저 백업해야하며 원격 (RDP)이 아닌 KVM을 통해 서버에 연결되어 있어야합니다. 이 단계를 기본적으로 여기에두기 때문에이 단계를 선택하면 책임을지지 않습니다.
프로파일의 위치는 다음과 같습니다.
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
출처