Methode 1
Ich habe dieses Problem auf einem kritischen Windows Server-System in einer Umgebung behandelt, die ich betreue, mit einem Batch-Skript, das Set-NetConnectionProfile und netsh verwendet, und jeden vertrauenswürdigen NIC / Adapter auf dem Computer beim Systemstart mit privat festlegen Taskplaner mit und Option.Run whether user is logged on or not
Run with highest privileges
Hinweis: Während der Kopfgeld-Hinweis lautet: " Die Lösung darf nicht dazu führen, dass die Netzwerkkonnektivität nicht implementiert wird ", wollte ich erwähnen, dass seit dem Auftreten dieses Problems ohnehin eine Netzwerkunterbrechung vorliegt, wenn dieses Skript ausgeführt wird, wenn das Problem zufällig beim System auftritt Nicht neu gestartet, dass das gleiche Skript einfach ausgeführt wird, um das Problem dennoch schnell zu beheben und den Netzwerkzugriff des Betriebssystems in der betriebsbereiten und erwarteten Reihenfolge wiederherzustellen.
Darüber hinaus können Sie das Get-NetConnectionProfile verwenden, um die Aliasnamen der NICs und die Indexnummern zu erhalten, die in das nachstehende Batch-Skript für Ihre Anforderungen und / oder Systeme eingefügt werden.
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
Hier sind ein paar andere Methoden, mit einer der vielen Möglichkeiten, die Sie ausprobiert haben, aber ich habe es für andere übrig gelassen, die auf diesen Beitrag stoßen, falls es ihnen hilft. Dies sind jedoch einige Möglichkeiten, dies vollständig zu verhindern, aber es gibt einige Möglichkeiten Die Methode, die Sie verwenden, wird immer Vor- und Nachteile, wählen Sie Ihr Gift und testen Sie es entsprechend.
Methode 2 (mehrere Methoden)
Nicht identifiziertes Netzwerk - Wechseln Sie von öffentlich zu privat oder Domäne
Wenn NLA keinen Verbindungsstandort ermitteln kann, wird dieser als "Nicht identifiziert" bezeichnet und der Speicherort als "Öffentlich" gekennzeichnet. Es wählt Public, weil dies am sichersten ist und Sie 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 korrekten Platzieren des Standorts erforderlich sind.
Lokale Sicherheitsrichtlinie verwenden
Achtung: Dies sollte nur verwendet werden, wenn der Computer niemals Verbindungen zum öffentlichen LAN hat. Andernfalls besteht das Risiko, 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 Fensterbereich auf " Unidentified Networks ".
Für Computer, die nur im privaten Netzwerk vorhanden sind, können Sie " Location type " auf " private " setzen.
Eigenschaften der Netzwerkverbindung verwenden
Es geht nicht darum, eine Gateway-IP hinzuzufügen, da dies auf einem mehrfach vernetzten Server nicht ordnungsgemäß funktioniert. Stattdessen fügen wir ein DNS-Suffix hinzu, damit NLA den Domänencontroller ordnungsgemäß finden kann. Auf diese Weise kann der Standort als "Domänennetzwerk" gekennzeichnet werden.
Gehen Sie zu Netzwerkverbindungen (klicken Sie im Netzwerk- und Freigabecenter auf "Adaptereinstellungen ändern".)
Gehen Sie zu den Eigenschaften einer Netzwerkverbindung, die als " Nicht identifiziert " gekennzeichnet ist, jedoch im privaten LAN.
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 Sie und aktivieren Sie die Verbindung, damit NLA den Standort erneut identifiziert. Nach dem Aktivieren der Verbindung sollte der Status in den Domänennamen und die Netzwerkkategorie in "Domänennetzwerk" geändert werden. Abhängig von Ihrem Setup müssen Sie wahrscheinlich nur eine Verbindung "reparieren", damit alle zugehörigen Verbindungen die Domäne sehen können.
Wechseln Sie von privat zu öffentlich
Es gibt zwei Möglichkeiten, die NLA dazu zu zwingen, eine Verbindung als öffentlich zu kennzeichnen. Eine besteht darin, eine Firewall-Regel zu verwenden, um NLA zu blockieren, so dass es keine andere Wahl gibt, als den Standardspeicherort zu verwenden. Zum anderen können Sie die Registrierung verwenden, um NLA für die Verbindung zu deaktivieren.
Verwenden der Firewall
Ich habe das nicht getestet, aber die Theorie scheint gut zu sein.
Öffnen Sie " Windows-Firewall mit erweiterter Sicherheit " (dh
wf.msc
).Gehen Sie zu den Regeln für ausgehende Nachrichten .
Klicken Sie auf " Neue Regel …".
Verwenden Sie diese Einstellungen:
- Regeltyp: Benutzerdefiniert
- Programm: Wählen Sie "Alle Programme" und klicken Sie auf "Anpassen ...". Wählen Sie "Network Location Awareness" (Kurzname ist NlaSvc).
- Protokoll und Ports: Protokolltyp = Alle.
- Geltungsbereich: Lokale IPs = Geben Sie alle Ihre öffentlichen IPs ein. Prüfen Sie, ob Verbindungen mit mehreren IPs vorhanden sind.
- Aktion: Blockieren
- Profil: Alle
Wenn die Regel aktiviert ist, deaktivieren und aktivieren Sie die Netzwerkverbindung, damit NLA den Standort erneut identifizieren kann.
Verwendung der Registry
Ich habe diese Arbeit nicht für mich gehabt, aber meine Umstände können sich von Ihren unterscheiden. Das Finden der richtigen Verbindungsnummer ist ein Treffer oder ein Misserfolg, da viel mehr Einträge vorhanden sind, als Sie erwarten würden.
Führen Sie Regedit aus
Gehe zu
HKLM\SYSTEM\CurrentControlSet\Control\Class\
Darunter sollten mehrere Schlüssel mit der Bezeichnung 0000, 0001, 0002 usw. angezeigt werden. Durchsuchen Sie diese und finden Sie die Adapter, an denen Sie NLA deaktivieren möchten.
Fügen Sie für jeden 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 angeben).
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 sollten die Registrierung auf jeden Fall zuerst sichern, und Sie müssen wahrscheinlich über KVM und nicht remote (RDP) mit dem Server verbunden sein. Ich übernehme keine Verantwortung, wenn Sie sich für diesen Schritt entscheiden, da ich dies hier vor allem als Referenz stelle.
Der Ort der Profile ist:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles