web-dev-qa-db-fra.com

Empêcher Windows NLA on line

Je gère un réseau de petite entreprise avec un certain nombre de PC Windows 10 et 7. De temps en temps, mais assez fréquemment, les utilisateurs se plaignent de ne plus pouvoir accéder aux dossiers partagés avec d’autres collègues. Un dépannage rapide détermine que le problème est dû au tristement célèbre "réseau non identifié détecté" qui applique ensuite le profil de réseau "public" au lieu du profil de réseau "privé". Par conséquent, le partage de groupes de maison/fichiers, etc. D'après mes recherches, c'est un problème commun à de nombreux utilisateurs. Je ne vois aucune solution proposée qui fonctionne.

Environnement:

  • Tous les PC Windows sont connectés via Ethernet filaire (bien qu'ils puissent avoir une carte réseau Wifi)
  • Ils sont tous connectés à un commutateur géré Avaya L2 à 48 ports, tous sur le même sous-réseau 10.10.10.x.
  • Le commutateur est connecté à un routeur domestique Asus RTN-66U
  • Le routeur Asus se connecte au modem câble
  • Le routeur Asus fournit DHCP aux machines Windows
  • J'ai configuré le routeur avec des réservations DHCP pour chaque PC Windows, c.-à-d. Que les ordinateurs obtiennent toujours la même adresse IP au démarrage.
  • Pas de contrôleur de domaine

Problème:

Même si j'ai configuré tous les profils réseau actifs des machines Windows = Privé, ils reviennent souvent (toutes les deux semaines environ) sur Public, ce qui empêche le partage de fichiers, etc.

Corrections tentées:

Sur chaque PC Windows, j'ai modifié la stratégie de groupe locale Computer Configuration->Security Settings->Network List Manager Policies:

  • Réseaux non identifiés = privés
  • Identifier les réseaux = privés

Observations:

Je pense que le problème est que le service Windows Network Location Awareness (NLA) détecte un nouveau réseau, ce qui entraîne la création d'un nouveau profil de réseau qui passe ensuite à Public (même si j'ai précédemment configuré la stratégie de groupe locale sur Privé). . De nombreux ordinateurs montrent que Windows a détecté plusieurs fois un nouveau réseau non identifié, c’est-à-dire qu’ils affichent "Réseau 14", c’est-à-dire qu’il existe 14 profils de réseau différents. Je vois ces profils multiples lors de l'examen des profils ici dans le registre: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles.

Tous les 14 profils correspondent au moment où l’ordinateur était réellement connecté au même réseau que décrit ci-dessus.

Je n'ai pas été en mesure de trouver une ressource décrivant exactement comment NLA génère un identificateur unique pour un réseau et, par conséquent, pourquoi elle pourrait détecter la découverte d'un nouveau réseau.

Question:

Comment empêcher Windows d'identifier incorrectement mon réseau local en tant que nouveau réseau? Peut-être que cela aiderait si je savais quelles étapes la NLA suit pour générer un identifiant unique pour un réseau?

12
PaulH

Méthode 1

Dans un environnement que j’ai maintenu, j’ai traité ce problème sur un système Windows Server critique au moyen d’un script de traitement par lots qui utilise Set-NetConnectionProfile et netsh et configurez explicitement chaque carte réseau/adaptateur approuvé de la machine sur privé à démarrage du système avec planificateur de tâches à l'aide de l'option Run whether user is logged on or not et Run with highest privileges.

enter image description hereenter image description here

Remarque: Alors que la note de prime indique ", la solution ne doit pas entraîner la perte de la connectivité réseau à implémenter ". Je voulais mentionner En cas d’interruption du réseau, le fait d’exécuter ce script si le problème se produit aléatoirement lorsque le système n’est pas redémarré consiste à exécuter le même script, puis à résoudre rapidement le problème et à rétablir l'accès au réseau de la machine OS dans les conditions de travail attendues. ordre.

De plus, vous pouvez utiliser Get-NetConnectionProfile pour obtenir les noms d'alias et les numéros d'index NIC à insérer dans l'exemple de script de traitement par lots ci-dessous. pour vos besoins et/ou systèmes.

Script de lot

@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

Vous trouverez ci-dessous quelques autres méthodes, l'une de ces méthodes étant celle que vous avez essayée, mais je l'ai laissée là pour les autres qui rencontrent ce message au cas où cela les aiderait, mais voici quelques moyens d'éviter ce problème, peut-être, mais il existe Il y aura toujours des avantages et des inconvénients par rapport à la méthode que vous choisirez, choisissez votre poison et testez-le en conséquence.

Méthode 2 (méthodes multiples)

Réseau non identifié - Passer du public au privé ou au domaine

Si NLA ne peut pas déterminer un emplacement de connexion, il le nomme "Non identifié" et marque l'emplacement comme public. Il choisit Public car il est le plus sécurisé et vous ne voudriez rien de moins si la connexion est établie sur la zone démilitarisée.

Il existe deux manières simples de résoudre ce problème. L'une utilise la stratégie de sécurité locale pour modifier l'emplacement par défaut de réseaux non identifiés. La deuxième méthode utilise une modification des propriétés de la connexion réseau pour fournir à NLA les informations nécessaires pour placer correctement l'emplacement.

Utilisation de la stratégie de sécurité locale

Attention: Ceci ne devrait être utilisé que si l'ordinateur n'a jamais de connexion sur le réseau local public. Sinon, vous courez le risque de voir un profil de pare-feu moins sécurisé appliqué à votre connexion publique.

  1. Ouvrez " la politique de sécurité locale ".

  2. Cliquez sur " Stratégies du gestionnaire de liste de réseau " dans le volet de gauche. (Cette sélection est enterrée dans les anciennes versions de Windows.)

  3. Double-cliquez sur " Réseaux non identifiés " dans le volet de droite.

  4. Pour les ordinateurs qui n'existent que sur le réseau privé, il est correct de définir " type d'emplacement " sur " privé ".

    enter image description here

Utilisation des propriétés de la connexion réseau

Il ne s’agit pas d’ajouter une adresse IP de passerelle car cela ne fonctionne pas correctement sur un serveur multi-hébergé. Au lieu de cela, nous ajouterons un suffixe DNS afin que NLA puisse localiser correctement le contrôleur de domaine, ce qui lui permet de marquer l'emplacement en tant que "réseau de domaine".

  1. Allez à Connexions réseau (à partir du Centre réseau et partage, cliquez sur "Modifier les paramètres de la carte".)

  2. Accédez à la propriété d'une connexion réseau marquée " non identifiée " mais sur le réseau local privé.

  3. Accédez aux propriétés pour IPv4 .

  4. Cliquez sur le bouton " Advanced ...".

  5. Sélectionnez l'onglet DNS.

  6. Entrez votre nom de domaine dans la zone de texte pour " suffixe DNS pour cette connexion: ".

Désactivez puis activez la connexion pour que NLA identifie à nouveau l'emplacement. Après avoir activé la connexion, le statut doit passer au nom de domaine et la catégorie de réseau à "Réseau de domaine". Selon votre configuration, il est probable que vous n’ayez besoin que de "réparer" une connexion pour que toutes les connexions associées voient le domaine.

Passer du privé au public

Il existe deux méthodes courantes pour obliger NLA à marquer une connexion comme publique. La première consiste à utiliser une règle de pare-feu pour bloquer la NLA afin qu’elle n’ait pas d’autre choix que d’utiliser l’emplacement par défaut. L'autre consiste à utiliser le registre pour désactiver NLA sur la connexion.

Utiliser le pare-feu

Je n’ai pas testé cela, mais la théorie semble bonne.

  1. Ouvrez " Pare-feu Windows avec sécurité avancée " (i.e wf.msc).

  2. Allez à Règles sortantes .

  3. Cliquez sur " Nouvelle règle …".

  4. Utilisez ces paramètres:

    • Type de règle: Personnalisé
    • Programme: Sélectionnez "Tous les programmes" puis cliquez sur "Personnaliser ...". Sélectionnez "Network Location Awareness" (nom abrégé: NlaSvc).
    • Protocole et ports: Type de protocole = N'importe lequel.
    • Portée: IPs locales = Entrez toutes vos adresses IP publiques. Vérifiez deux fois pour les connexions avec plusieurs IP.
    • Action: Bloquer
    • Profil: Tous
  5. Une fois la règle activée, désactivez puis activez la connexion réseau pour que NLA identifie à nouveau l'emplacement.

Utiliser le registre

Je n'ai pas eu ce travail pour moi mais ma situation peut être différente de la vôtre. Trouver le bon numéro de connexion est un peu hasardeux, car il y a beaucoup plus d'entrées que prévu.

  1. Exécuter regedit

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

  3. Au-dessous de vous, vous devriez voir plusieurs clés intitulées 0000, 0001, 0002, etc.… Parcourez-les et recherchez les adaptateurs pour lesquels vous souhaitez désactiver la NLA.

  4. Pour chacun des adaptateurs, ajoutez une nouvelle valeur DWORD nommée "* NdisDeviceType" et définissez-la sur 1 (assurez-vous que vous obtenez le * au début du nom).

Devenir drastique

Les profils d'emplacement sont hébergés dans le registre et il semble inoffensif de les supprimer et de laisser Windows les reconstruire. Vous voudrez certainement tout d’abord sauvegarder le registre et vous devrez probablement être connecté au serveur via KVM plutôt qu’à distance (RDP). Je ne prendrai aucune responsabilité si vous choisissez cette étape car je la mets principalement ici pour référence.

L'emplacement des profils est:

HKLM\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles

source

4
Pimp Juice IT

J'ai eu ce problème sans fin sur un seul système spécifique. Cela briserait tout à chaque redémarrage. J'ai essayé toutes les solutions que vous avez mentionnées. Après avoir épuisé tout le reste, j’ai décidé de désactiver le service "Network Location Awareness". D'après ce que je peux dire, ce n'est pas nécessaire. Cela a définitivement résolu mon problème. Le seul effet secondaire que j'ai remarqué est que la fenêtre "Centre Réseau et partage" est amusante. Ce service n'existait pas avant Windows 7 et ne m’est d'aucune utilité.

Services.msc

"Connaissance de l'emplacement du réseau", Type de démarrage = "Désactivé"

0
HackSlash