Yöntem 1
Ben korumak Bir ortamda kritik bir Windows Server sistem üzerinde bu konuyla uğraştığım bir yolu kullanan bir toplu komut dosyası ile oldu Set-NetConnectionProfile ve netsh ve açıkça her NIC / makinede adaptörü güvenilen set özel olarak sistem başlangıcında ile Görev ZamanlayıcıRun whether user is logged on or not
ve Run with highest privileges
seçeneğini kullanarak .
Not: Ödül notu " Çözüm uygulamak için ağ bağlantısı kaybına neden olmamalıdır " diyor olsa da , bu sorun ortaya çıktığında zaten bir ağ kesintisi olduğundan, bu komut dosyası sistem çalışırken rasgele oluşursa bu söz sadece aynı betiği çalıştırdıktan sonra sorunu hala hızlı bir şekilde çözecek ve OS makine ağ erişimini çalışma ve beklenen sırayla geri alacak.
Ayrıca, gereksinimleriniz ve / veya sistemleriniz için aşağıdaki örnek toplu iş komut dosyasına koymak üzere NIC diğer adı ve dizin numaralarını almak için Get-NetConnectionProfile kullanabilirsiniz.
Toplu Komut Dosyası
@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
Aşağıda, denediğiniz şeylerden biri olan birkaç yöntem daha var, ancak onlara yardımcı olması durumunda bu yazıyla karşılaşan diğerleri için orada bıraktım, ancak bunlar bunu tamamen önlemenin birkaç yolu. her zaman kullanmayı seçtiğiniz herhangi bir yöntemin üst ve alt kısımları olacaktır, bu yüzden zehirinizi seçin ve uygun şekilde test edin.
Yöntem 2 (Çoklu Yöntemler)
NLA bir bağlantı konumu belirleyemezse, buna "Tanımlanmamış" adını verir ve konumu Genel olarak işaretler. Herkese açık seçer çünkü bu en güvenlidir ve bağlantı DMZ'de ise daha az bir şey istemezsiniz.
Bunu düzeltmenin iki kolay yolu vardır. Kimliği belirsiz ağların varsayılan konumunu değiştirmek için Yerel Güvenlik İlkesi kullanılır. İkinci yöntem, NLA'ya konumu doğru bir şekilde yerleştirmek için ihtiyaç duyduğu bilgileri vermek için ağ bağlantısı özelliklerinde bir değişiklik kullanır.
Yerel Güvenlik İlkesini Kullanma
Dikkat: Bu, yalnızca bilgisayarın Genel LAN'da hiçbir bağlantısı olmayacaksa kullanılmalıdır. Aksi takdirde, genel bağlantınıza daha az güvenli bir güvenlik duvarı profili uygulanma riskiyle karşılaşırsınız.
" Yerel Güvenlik İlkesi " ni açın.
Sol bölmedeki " Ağ Listesi Yöneticisi İlkeleri " ni tıklayın . (Bu seçim Windows'un eski sürümlerinde gömülüdür.)
Sağ bölmedeki " Tanımlanmamış Ağlar " ı çift tıklayın .
Yalnızca özel ağda bulunan bilgisayarlar için, " Konum türü " nü " özel " olarak ayarlamakta sorun yoktur.
Ağ Bağlantısı Özelliklerini Kullanma
Bu, çok bağlantılı bir sunucuda düzgün çalışmadığından bir ağ geçidi IP'si eklemekle ilgili değildir. Bunun yerine, NLA'nın etki alanı denetleyicisini doğru bir şekilde bulabilmesi için bir DNS soneki ekleyeceğiz;
Git Ağ Bağlantıları (Ağ ve Paylaşım Merkezi'ne, "Değişim adaptör ayarlarına" tıklayın.)
Git özelliklerinin araştırılması ler "olarak işaretlenmiş bir ağ bağlantısının Tanımlanamayan " ancak özel LAN üzerinde.
IPv4 özelliklerine gidin .
" Gelişmiş ..." düğmesini tıklayın.
DNS sekmesini seçin .
" Bu bağlantı için DNS soneki: " metin kutusuna alan adınızı girin .
NLA'nın konumu yeniden tanımlamasını sağlamak için bağlantıyı devre dışı bırakın ve etkinleştirin. Bağlantıyı etkinleştirdikten sonra, Durum etki alanı adına ve Ağ Kategorisine "Etki alanı ağı" olarak değişmelidir. Kurulumunuza bağlı olarak, etki alanı ile ilgili tüm bağlantıları görmek için yalnızca bir bağlantıyı "düzeltmeniz" gerekebilir.
Özelden Herkese Geç
NLA'yı bir bağlantıyı genel olarak işaretlemeye zorlamanın iki yaygın yolu vardır. Birincisi, NLA'yı engellemek için bir güvenlik duvarı kuralı kullanmaktır, böylece varsayılan konumu kullanmaktan başka seçeneği kalmaz. Diğeri bağlantıda NLA'yı devre dışı bırakmak için kayıt defterini kullanmaktır.
Güvenlik Duvarını Kullanma
Bunu test etmedim ama teori sağlam görünüyor.
" Gelişmiş Güvenlik Özellikli Windows Güvenlik Duvarı " nı açın (örn. wf.msc
).
Git Giden kuralları .
" Yeni Kural …" ı tıklayın.
Bu ayarları kullanın:
- Kural Türü: Özel
- Program: "Tüm programlar" ı seçin ve "Özelleştir…" e tıklayın. "Ağ Konumu Tanıma" yı seçin (kısa ad NlaSvc'dir).
- Protokol ve Bağlantı Noktaları: Protokol türü = Herhangi biri.
- Kapsam: Yerel IP'ler = Tüm genel IP'lerinizi girin. Birden fazla IP'ye sahip bağlantıları kontrol edin.
- Eylem: Engelle
- Profil: Tümü
Kural etkinleştirildikten sonra, NLA'nın konumu yeniden tanımlaması için ağ bağlantısını devre dışı bırakın ve etkinleştirin.
Kayıt Defterini Kullanma
Bu işi benim için yapmadım ama durumum sizinkinden farklı olabilir. Beklediğinizden çok daha fazla giriş olduğundan doğru bağlantı numarasını bulmak biraz isabetlidir.
Regedit'i çalıştır
Adresine git HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
Altında 0000, 0001, 0002 vb. Etiketli birkaç anahtar görmelisiniz… Bunlara bakın ve NLA'yı devre dışı bırakmak istediğiniz adaptörleri bulun.
Bağdaştırıcıların her biri için "* NdisDeviceType" adlı yeni bir DWORD değeri ekleyin ve 1 olarak ayarlayın (adın başında * aldığınızdan emin olun).
Sertleşmek
Konum profilleri kayıt defterinde bulunur ve bunları silmek ve Windows'un bunları yeniden oluşturmasına izin vermek zararsız görünmektedir. Kesinlikle önce kayıt defterini yedeklemek isteyeceksiniz ve muhtemelen uzak (RDP) yerine KVM aracılığıyla sunucuya bağlanmanız gerekecektir. Öncelikle bunu referans olarak buraya koyduğum için bu adımı seçerseniz herhangi bir sorumluluk kabul etmeyeceğim.
Profillerin konumu:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
kaynak