Methode 1
Ein Weg , ich mit diesem Problem auf einem wichtigen Windows - Server - System in einer Umgebung behandelt habe ich beibehalten wurde mit einem Batch - Skript , das verwendet Set-NetConnectionProfile und netsh und explizit jede NIC vertraute / Adapter an der Maschine privat bei Systemstart mit Taskplaner mit Run whether user is logged on or not
und Run with highest privileges
Option.
Hinweis: Während in der Kopfgeldnotiz angegeben ist: " Die Lösung darf nicht zu einem Verlust der Netzwerkkonnektivität führen ", wollte ich erwähnen, dass bei Auftreten dieses Problems ohnehin eine Netzwerkstörung auftritt und dieses Skript ausgeführt wird, wenn das Problem zufällig auf dem System auftritt Wenn Sie nicht neu gestartet werden, wird das Problem durch einfaches Ausführen desselben Skripts schnell behoben und der Netzwerkzugriff des Betriebssystems wird wieder in der funktionierenden und erwarteten Reihenfolge ausgeführt.
Darüber hinaus können Sie das Get-NetConnectionProfile verwenden , um die NIC-Aliasnamen und Indexnummern abzurufen, die für Ihre Anforderungen und / oder Systeme in das folgende Beispiel-Batch-Skript eingefügt werden sollen.
Batch-Skript
@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
Im Folgenden sind einige andere Methoden aufgeführt, von denen eine die vielen ist, die Sie ausprobiert haben, aber ich habe sie für andere belassen, die auf diesen Beitrag stoßen, falls er ihnen hilft, aber dies sind einige Möglichkeiten, dies möglicherweise vollständig zu verhindern, aber es gibt sie Bei jeder Methode, die Sie verwenden, wird es immer Vor- und Nachteile geben. Wählen Sie also Ihr Gift aus und testen Sie es entsprechend.
Methode 2 (mehrere Methoden)
Wenn NLA einen Verbindungsspeicherort nicht ermitteln kann, nennt er ihn "Nicht identifiziert" und markiert den Speicherort als "Öffentlich". Es wählt Öffentlich, weil dies am sichersten ist und Sie nicht weniger wollen, wenn die Verbindung in der DMZ besteht.
Es gibt zwei einfache Möglichkeiten, dies zu beheben. Man verwendet die lokale Sicherheitsrichtlinie, um den Standardspeicherort nicht identifizierter Netzwerke zu ändern. Die zweite Methode verwendet eine Änderung der Netzwerkverbindungseigenschaften, um NLA die Informationen zu geben, die zum ordnungsgemäßen Platzieren des Standorts erforderlich sind.
Lokale Sicherheitsrichtlinie verwenden
Achtung: Dies sollte nur verwendet werden, wenn der Computer niemals Verbindungen im öffentlichen LAN hat. Andernfalls besteht die Gefahr, dass ein weniger sicheres Firewall-Profil auf Ihre öffentliche Verbindung angewendet wird.
Öffnen Sie " Lokale Sicherheitsrichtlinie ".
Klicken Sie im linken Bereich auf " Network List Manager Policies ". (Diese Auswahl ist in älteren Windows-Versionen enthalten.)
Doppelklicken Sie im rechten Bereich auf " Nicht identifizierte Netzwerke ".
Für Computer, die nur im privaten Netzwerk vorhanden sind, ist es in Ordnung, " Standorttyp " auf " privat " zu setzen.
Verwenden der Eigenschaften der Netzwerkverbindung
Hier geht es nicht darum, eine Gateway-IP hinzuzufügen, da dies auf einem Multi-Homed-Server nicht ordnungsgemäß funktioniert. Stattdessen werden wir ein DNS-Suffix hinzufügen, damit NLA den Domänencontroller ordnungsgemäß lokalisieren kann, wodurch bekannt ist, dass der Standort als "Domänennetzwerk" markiert wird.
Gehen Sie zu Netzwerkverbindungen (klicken Sie im Netzwerk- und Freigabecenter auf "Adaptereinstellungen ändern".)
Wechseln Sie zu den Eigenschaften einer Netzwerkverbindung, die als " Nicht identifiziert " gekennzeichnet ist, sich jedoch im privaten LAN befindet.
Wechseln Sie zu den Eigenschaften für IPv4 .
Klicken Sie auf die Schaltfläche " Erweitert ...".
Wählen Sie die Registerkarte DNS .
Geben Sie Ihren Domainnamen in das Textfeld für " DNS-Suffix für diese Verbindung: " ein.
Deaktivieren und aktivieren Sie die Verbindung, damit NLA den Standort erneut identifiziert. Nach dem Aktivieren der Verbindung sollte sich der Status in Domänenname und Netzwerkkategorie in "Domänennetzwerk" ändern. Abhängig von Ihrem Setup ist es wahrscheinlich, dass Sie nur eine Verbindung "reparieren" müssen, um alle zugehörigen Verbindungen zu erhalten, damit die Domäne angezeigt wird.
Wechseln Sie von privat zu öffentlich
Es gibt zwei gängige Methoden, um NLA zu zwingen, eine Verbindung als öffentlich zu markieren. Eine besteht darin, eine Firewall-Regel zu verwenden, um NLA zu blockieren, sodass keine andere Wahl bleibt, als den Standardspeicherort zu verwenden. Die andere Möglichkeit besteht darin, die Registrierung zu verwenden, um NLA für die Verbindung zu deaktivieren.
Verwenden der Firewall
Ich habe das nicht getestet, aber die Theorie scheint solide zu sein.
Öffnen Sie " Windows-Firewall mit erweiterter Sicherheit " (dh wf.msc
).
Gehen Sie zu Ausgehende Regeln .
Klicken Sie auf " Neue Regel ...".
Verwenden Sie diese Einstellungen:
- Regeltyp: Benutzerdefiniert
- Programm: Wählen Sie "Alle Programme" und klicken Sie dann auf "Anpassen ...". Wählen Sie "Network Location Awareness" (Kurzname ist NlaSvc).
- Protokoll und Ports: Protokolltyp = Beliebig.
- Geltungsbereich: Lokale IPs = Geben Sie alle Ihre öffentlichen IPs ein. Überprüfen Sie, ob Verbindungen mit mehreren IPs vorhanden sind.
- Aktion: Blockieren
- Profil: Alle
Sobald die Regel aktiviert ist, deaktivieren Sie die Netzwerkverbindung und aktivieren Sie sie, damit NLA den Standort erneut identifiziert.
Verwenden der Registrierung
Ich habe diese Arbeit nicht für mich gehabt, aber mein Umstand kann sich von Ihrem unterscheiden. Das Finden der richtigen Verbindungsnummer ist ein Hit oder Miss, da es viel mehr Einträge gibt, als Sie erwarten würden.
Führen Sie regedit aus
Gehe zu HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
Darunter sollten sich mehrere Schlüssel mit den Bezeichnungen 0000, 0001, 0002 usw. befinden. Sehen Sie sich diese an und finden Sie die Adapter, an denen Sie NLA deaktivieren möchten.
Fügen Sie für jeden der Adapter einen neuen DWORD-Wert mit dem Namen "* NdisDeviceType" hinzu und setzen Sie ihn auf 1 (stellen Sie sicher, dass Sie das * am Anfang des Namens erhalten).
Drastisch werden
Die Standortprofile befinden sich in der Registrierung, und es scheint harmlos, sie zu löschen und von Windows neu erstellen zu lassen. Sie möchten auf jeden Fall zuerst die Registrierung sichern und müssen wahrscheinlich über KVM und nicht über Remote (RDP) mit dem Server verbunden sein. Ich übernehme keine Verantwortung, wenn Sie diesen Schritt wählen, da ich dies hier hauptsächlich als Referenz anführe.
Die Position der Profile ist:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
Quelle