Phương pháp 1
Một cách tôi đã xử lý vấn đề này trên một hệ thống Windows Server quan trọng trong một môi trường tôi duy trì là với một kịch bản theo gói sử dụng Set-NetConnectionProfile và netsh , và thiết lập một cách rõ ràng mỗi tin cậy NIC / bộ chuyển đổi trên máy tính này để tin vào khởi động hệ thống với Lập lịch tác vụ bằng cách sử dụng Run whether user is logged on or not
và Run with highest privileges
tùy chọn.
Lưu ý: Mặc dù ghi chú tiền thưởng ghi rõ " Giải pháp không được làm mất kết nối mạng để thực hiện " Tôi muốn đề cập rằng vì khi sự cố này xảy ra, bạn vẫn bị gián đoạn mạng, việc chạy tập lệnh này nếu xảy ra sự cố ngẫu nhiên khi hệ thống xảy ra không được khởi động lại mà chỉ đơn giản là chạy cùng một kịch bản này sau đó vẫn sẽ nhanh chóng giải quyết vấn đề và lấy lại quyền truy cập mạng máy hệ điều hành theo thứ tự làm việc và dự kiến.
Hơn nữa, bạn có thể sử dụng Get-NetConnectionProfile để lấy tên bí danh và số chỉ mục của NIC để đưa vào tập lệnh lô ví dụ bên dưới cho nhu cầu và / hoặc hệ thống của bạn.
Tập lệnh hàng loạt
@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
Dưới đây là một vài phương pháp khác, với một trong số đó là những gì bạn đã thử nhưng tôi đã để nó ở đó cho những người khác đi qua bài đăng này trong trường hợp nó giúp họ, nhưng đây là một vài cách để ngăn chặn điều này hoàn toàn có thể nhưng có luôn luôn có những mặt thăng trầm đối với bất kỳ phương pháp nào bạn chọn sử dụng, vì vậy hãy chọn thuốc độc và thử nghiệm cho phù hợp.
Phương pháp 2 (Nhiều phương thức)
Nếu NLA không thể xác định vị trí kết nối, nó sẽ đặt tên là "Không xác định" và đánh dấu vị trí là Công khai. Nó chọn Công khai vì điều đó an toàn nhất và bạn sẽ không muốn bất cứ điều gì ít hơn nếu kết nối nằm trên DMZ.
Có hai cách dễ dàng để khắc phục điều này. Người ta sử dụng Chính sách bảo mật cục bộ để thay đổi vị trí mặc định của các mạng không xác định. Phương pháp thứ hai sử dụng thay đổi các thuộc tính kết nối mạng để cung cấp cho NLA thông tin cần thiết để đặt đúng vị trí.
Sử dụng chính sách bảo mật cục bộ
Thận trọng: Điều này chỉ nên được sử dụng nếu máy tính sẽ không bao giờ có bất kỳ kết nối nào trên Mạng LAN công cộng. Mặt khác, bạn có nguy cơ có một hồ sơ tường lửa kém an toàn được áp dụng cho kết nối công khai của bạn.
Mở " Chính sách bảo mật cục bộ ".
Nhấp vào " Chính sách quản lý danh sách mạng " trong khung bên trái. (Lựa chọn này được chôn trong các phiên bản Windows cũ hơn.)
Nhấp đúp vào " Mạng không xác định " trong khung bên phải.
Đối với các máy tính chỉ tồn tại trên mạng riêng, bạn có thể đặt " Loại vị trí " thành " riêng tư ".
Sử dụng thuộc tính kết nối mạng
Đây không phải là về việc thêm một IP gateway vì nó không hoạt động chính xác trên một máy chủ đa homed. Thay vào đó, chúng tôi sẽ thêm một hậu tố DNS để NLA có thể định vị chính xác bộ điều khiển miền, đó là cách nó biết để đánh dấu vị trí là mạng Miền tên miền.
Chuyển đến Kết nối mạng (từ Trung tâm chia sẻ và mạng, nhấp vào "Thay đổi cài đặt bộ điều hợp".)
Tới các propertie s của một kết nối mạng được đánh dấu là " Unidentified " nhưng trên mạng LAN riêng.
Chuyển đến các thuộc tính cho IPv4 .
Nhấp vào nút " Nâng cao ...".
Chọn tab DNS .
Nhập tên miền của bạn vào hộp văn bản cho " hậu tố DNS cho kết nối này: ".
Vô hiệu hóa và sau đó kích hoạt kết nối để có được NLA để xác định lại vị trí. Sau khi kích hoạt kết nối, Trạng thái sẽ thay đổi thành tên miền và Danh mục mạng thành "Mạng miền". Tùy thuộc vào thiết lập của bạn, có thể bạn chỉ cần "sửa" một kết nối để có được tất cả các kết nối liên quan để xem tên miền.
Chuyển từ tư nhân sang công cộng
Có hai cách phổ biến để buộc NLA đánh dấu một kết nối là công khai. Một là sử dụng quy tắc tường lửa để chặn NLA để không có lựa chọn nào khác ngoài sử dụng vị trí mặc định. Hai là sử dụng sổ đăng ký để vô hiệu hóa NLA trên kết nối.
Sử dụng tường lửa
Tôi đã không kiểm tra điều này nhưng lý thuyết có vẻ hợp lý.
Mở " Tường lửa Windows với bảo mật nâng cao " (nghĩa là wf.msc
).
Chuyển đến quy tắc đi .
Nhấp vào " Quy tắc mới ".
Sử dụng các cài đặt sau:
- Loại quy tắc: Tùy chỉnh
- Chương trình: Chọn "Tất cả chương trình" và sau đó nhấp vào "Tùy chỉnh". Chọn "Nhận thức vị trí mạng" (tên viết tắt là NlaSvc).
- Giao thức và cổng: Loại giao thức = Bất kỳ.
- Phạm vi: IP cục bộ = Nhập tất cả IP công cộng của bạn. Kiểm tra kỹ các kết nối có nhiều IP.
- Hành động: Chặn
- Hồ sơ: Tất cả
Khi quy tắc được bật, hãy tắt và sau đó kích hoạt kết nối mạng để có được NLA để xác định lại vị trí.
Sử dụng sổ đăng ký
Tôi chưa có công việc này cho tôi nhưng hoàn cảnh của tôi có thể khác với bạn. Tìm số kết nối chính xác là một chút nhấn hoặc bỏ lỡ vì có nhiều mục hơn bạn mong đợi.
Chạy regedit
Đi đến HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
Bên dưới bạn sẽ thấy một số khóa có nhãn 0000, 0001, 0002 vv. Nhìn qua những điều này và tìm các bộ điều hợp nơi bạn muốn tắt NLA.
Đối với mỗi bộ điều hợp, hãy thêm một giá trị DWORD mới có tên "* NdisDeviceType" và đặt thành 1 (đảm bảo bạn nhận được dấu * ở đầu tên).
Bắt đầu quyết liệt
Các cấu hình vị trí được lưu trữ trong sổ đăng ký và dường như vô hại khi xóa chúng và để Windows xây dựng lại chúng. Bạn chắc chắn sẽ muốn sao lưu sổ đăng ký trước và có thể bạn sẽ cần phải được kết nối với máy chủ thông qua KVM chứ không phải từ xa (RDP). Tôi sẽ không chịu trách nhiệm nếu bạn chọn bước này vì tôi chủ yếu đưa nó vào đây để tham khảo.
Vị trí của hồ sơ là:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
nguồn