it-swarm.com.de

Verhindert, dass Windows NLA das lokale Netzwerk wiederholt als neues, nicht identifiziertes Netzwerk erkennt

Ich verwalte ein kleines Unternehmensnetzwerk mit mehreren Windows 10- und 7-PCs. Zwischendurch, aber ziemlich häufig, beschweren sich Benutzer, dass sie nicht mehr mit anderen Mitarbeitern auf freigegebene Ordner zugreifen können. Eine schnelle Fehlerbehebung stellt fest, dass das Problem auf das berüchtigte "Unidentified Network detected" zurückzuführen ist, das dann das "Public" -Netzwerkprofil anstelle des "Private" -Netzwerkprofils anwendet, sodass die Freigabe von Heimnetzwerken/Dateien usw. nicht funktioniert. Aus meiner Suche ist dies ein häufiges Problem für viele Benutzer. Ich sehe keine vorgeschlagenen Lösungen, die funktionieren.

Umgebung:

  • Alle Windows-PCs sind über kabelgebundenes Ethernet verbunden (obwohl sie möglicherweise über eine WLAN-Netzwerkkarte verfügen).
  • Sie sind alle mit einem verwalteten Avaya L2-Switch mit 48 Ports verbunden, die sich alle im selben Subnetz 10.10.10.x befinden
  • Der Switch ist mit einem Asus RTN-66U-Heimrouter verbunden
  • Der Asus-Router stellt eine Verbindung zum Kabelmodem her
  • Der Asus-Router stellt Windows-Computern DHCP zur Verfügung
  • Ich habe den Router mit DHCP-Reservierungen für jeden Windows-PC konfiguriert, d. H. PCs erhalten beim Hochfahren immer die gleiche IP-Adresse
  • Kein Domänencontroller

Problem:

Obwohl ich alle aktiven Netzwerkprofile von Windows-Computern als "Privat" konfiguriert habe, werden sie häufig (etwa alle paar Wochen) auf "Öffentlich" zurückgesetzt, wodurch die gemeinsame Nutzung von Dateien usw. verhindert wird.

Fehlerbehebungsversuch:

Auf jedem Windows-PC habe ich die lokale Gruppenrichtlinie Computer Configuration->Security Settings->Network List Manager Policies geändert:

  • Nicht identifizierte Netzwerke = Privat
  • Netzwerke identifizieren = privat

Beobachtungen:

Ich glaube, dass das Problem darin besteht, dass der Windows-NLA-Dienst (Network Location Awareness) ein neues Netzwerk erkennt, wodurch ein neues Netzwerkprofil erstellt wird, das dann standardmäßig "Öffentlich" ist (obwohl ich die lokale Gruppenrichtlinie so konfiguriert habe, dass sie standardmäßig "Privat" ist). . Viele der Computer zeigen an, dass Windows viele Male ein neues nicht identifiziertes Netzwerk erkannt hat, d. H. Sie zeigen "Netzwerk 14" an, d. H. Es gibt 14 verschiedene Netzwerkprofile. Ich sehe diese mehreren Profile, wenn ich die Profile hier in der Registrierung überprüfe: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles.

Alle 14 Profile wurden erstellt, als der Computer tatsächlich mit demselben Netzwerk wie oben beschrieben verbunden war.

Ich konnte keine Ressource finden, die genau beschreibt, wie NLA eine eindeutige Kennung für ein Netzwerk generiert, und daher möglicherweise erkennt, dass ein neues Netzwerk gefunden wurde.

Frage:

Wie verhindere ich, dass Windows mein lokales Netzwerk fälschlicherweise als neues Netzwerk identifiziert? Vielleicht würde es helfen, wenn ich wüsste, wie NLA vorgeht, um eine eindeutige Kennung für ein Netzwerk zu generieren?

12
PaulH

Methode 1

Ich habe dieses Problem auf einem kritischen Windows Server-System in einer von mir verwalteten Umgebung mit einem Stapelskript gelöst, das Set-NetConnectionProfile und netsh und setzen Sie jeden vertrauenswürdigen NIC/Adapter auf dem Computer explizit auf privateat Systemstartmit Taskplaner unter Verwendung der Optionen Run whether user is logged on or not und Run with highest privileges.

enter image description hereenter image description here

Anmerkung:Während die Kopfgeldnotiz besagt " Die Lösung darf keinen Verlust der Netzwerkkonnektivität zur Folge haben " Ich wollte das seit wann dieses Problem erwähnen Tritt trotzdem eine Netzwerkstörung auf, so wird dieses Skript ausgeführt, wenn das Problem zufällig auftritt, wenn das System nicht neu gestartet wird. Wenn Sie einfach dasselbe Skript ausführen, wird das Problem dennoch schnell behoben und der Netzwerkzugriff auf den Betriebssystemcomputer 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 in das folgende Beispiel-Batch-Skript eingefügt werden sollen für Ihre Bedürfnisse und/oder Systeme.

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 das ist, was Sie versucht haben, aber ich habe sie für andere dort belassen, die auf diesen Beitrag gestoßen sind, falls es ihnen hilft. Es gibt jedoch einige Möglichkeiten, dies möglicherweise ganz 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)

Nicht identifiziertes Netzwerk - Wechsel von öffentlich zu privat oder Domain

Wenn NLA keinen Verbindungsstandort ermitteln kann, wird dieser als "Nicht identifiziert" bezeichnet und der Standort als "Öffentlich" markiert. Es wählt "Öffentlich", da dies am sichersten ist und Sie nicht weniger möchten, wenn sich die Verbindung in der DMZ befindet.

Es gibt zwei einfache Möglichkeiten, dies zu beheben. Mithilfe der lokalen Sicherheitsrichtlinie kann der Standardspeicherort nicht identifizierter Netzwerke geändert werden. Bei der zweiten Methode werden die Netzwerkverbindungseigenschaften geändert, um der 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 zum öffentlichen LAN hat. Andernfalls besteht das Risiko, dass auf Ihre öffentliche Verbindung ein weniger sicheres Firewall-Profil angewendet wird.

  1. Öffnen Sie " Lokale Sicherheitsrichtlinie".

  2. Klicken Sie im linken Bereich auf " Network List Manager Policies". (Diese Auswahl ist in älteren Windows-Versionen enthalten.)

  3. Doppelklicken Sie im rechten Bereich auf " Unidentified Networks".

  4. Für Computer, die nur im privaten Netzwerk vorhanden sind, ist es in Ordnung, " Standorttyp" auf " privat" zu setzen.

    enter image description here

Verwenden der Netzwerkverbindungseigenschaften

Hier geht es nicht um das Hinzufügen einer Gateway-IP, da dies auf einem Multi-Homed-Server nicht ordnungsgemäß funktioniert. Stattdessen fügen wir ein DNS-Suffix hinzu, damit die NLA den Domänencontroller ordnungsgemäß lokalisieren kann. So kann sie den Speicherort als "Domänennetzwerk" kennzeichnen.

  1. Gehen Sie zu Network Connections(klicken Sie im Netzwerk- und Freigabecenter auf "Adaptereinstellungen ändern".)

  2. Wechseln Sie zu propertyies einer Netzwerkverbindung, die als " Unidentified" gekennzeichnet ist, sich jedoch im privaten LAN befindet.

  3. Wechseln Sie zu den Eigenschaften für IPv4.

  4. Klicken Sie auf die Schaltfläche " Erweitert...".

  5. Wählen Sie die Registerkarte DNS.

  6. Geben Sie Ihren Domainnamen in das Textfeld für " DNS-Suffix für diese Verbindung:" ein.

Deaktivieren Sie und aktivieren Sie dann die Verbindung, um NLA zu veranlassen, den Speicherort neu zu identifizieren. Nach dem Aktivieren der Verbindung sollte sich der Status in Domainname und die Netzwerkkategorie in "Domainnetzwerk" ändern. Abhängig von Ihrem Setup müssen Sie wahrscheinlich nur eine Verbindung "reparieren", um alle zugehörigen Verbindungen für die Anzeige der Domäne zu erhalten.

Wechseln Sie von Privat zu Öffentlich

Es gibt zwei Möglichkeiten, NLA zu zwingen, eine Verbindung als öffentlich zu kennzeichnen. 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 noch nicht getestet, aber die Theorie scheint gut zu sein.

  1. Öffnen Sie " Windows-Firewall mit erweiterter Sicherheit" (d. H. wf.msc).

  2. Wechseln Sie zu Ausgehende Regeln.

  3. Klicken Sie auf " New Rule…".

  4. Verwenden Sie diese Einstellungen:

    • Regeltyp:Benutzerdefiniert
    • Programm:Wähle "Alle Programme" und klicke dann auf "Anpassen ...". Wählen Sie "Network Location Awareness" (Kurzname ist NlaSvc).
    • Protokoll und Ports:Protokolltyp = Beliebig.
    • Scope:Local IPs = Geben Sie alle Ihre öffentlichen IPs ein. Suchen Sie nach Verbindungen mit mehreren IPs.
    • Aktion:Blockieren
    • Profil:Alle
  5. Wenn die Regel aktiviert ist, deaktivieren und aktivieren Sie die Netzwerkverbindung, damit NLA den Standort erneut identifiziert.

Benutzung der Registry

Ich habe diese Arbeit nicht für mich gehabt, aber meine Umstände können von Ihren abweichen. Das Finden der richtigen Verbindungsnummer ist ein Hit oder Miss, da es viel mehr Einträge gibt, als Sie erwarten würden.

  1. Führen Sie regedit aus

  2. Gehe zu HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

  3. Darunter sollten sich mehrere Schlüssel mit der Bezeichnung 0000, 0001, 0002 usw. befinden. Sehen Sie sich diese an und suchen Sie die Adapter, bei denen Sie NLA deaktivieren möchten.

  4. 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 erhalten).

Immer drastisch

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

4
Pimp Juice IT

Ich hatte dieses Problem endlos auf nur einem bestimmten System. Es würde bei jedem Neustart alles kaputt gehen. Ich habe alle Lösungen ausprobiert, die Sie erwähnt haben. Nachdem ich alles andere erschöpft hatte, deaktivierte ich den Dienst "Network Location Awareness". Soweit ich das beurteilen kann, wird es nicht benötigt. Dies hat mein Problem dauerhaft gelöst. Der einzige Nebeneffekt, den ich bemerkt habe, ist, dass das Fenster "Netzwerk- und Freigabecenter" lustig aussieht. Dieser Dienst existierte vor Windows 7 nicht und ist für mich überhaupt nicht nützlich.

Services.msc

"Network Location Awareness", Starttyp = "Deaktiviert"

0
HackSlash