Impedisci a Windows NLA di rilevare ripetutamente la rete locale come una nuova rete non identificata


14

Sto gestendo una rete di piccole imprese con un numero di PC Windows 10 e 7. Gli utenti a intermittenza ma abbastanza frequentemente si lamentano di non poter più accedere alle cartelle condivise con altri colleghi. La risoluzione rapida dei problemi determina che il problema è dovuto alla famigerata "Rilevata rete non identificata" che applica quindi il profilo di rete "Pubblico" anziché il profilo di rete "Privato", pertanto la condivisione del gruppo / file, ecc. Non funziona. Dalla mia ricerca questo è un problema comune per molti utenti. Non vedo alcuna soluzione proposta che funzioni.

Ambiente:

  • Tutti i PC Windows sono collegati tramite Ethernet cablata (sebbene possano avere una scheda NIC Wifi)
  • Sono tutti collegati a uno switch gestito Avaya L2 a 48 porte, tutti sulla stessa sottorete 10.10.10.x.
  • Lo switch è collegato a un router domestico Asus RTN-66U
  • Il router Asus si collega al modem via cavo
  • Il router Asus fornisce DHCP ai computer Windows
  • Ho configurato il router con prenotazioni DHCP per ciascun PC Windows, ovvero i PC ottengono sempre lo stesso indirizzo IP all'avvio
  • Nessun controller di dominio

Problema:

Anche se ho configurato tutti i profili di rete attivi di tutte le macchine Windows = Privati, spesso (ogni paio di settimane circa) tornano a Pubblico, il che impedisce la condivisione di file ecc.

Correzioni tentate:

Su ogni PC Windows ho modificato i Criteri di gruppo locali Computer Configuration->Security Settings->Network List Manager Policies:

  • Reti non identificate = Privato
  • Reti identificative = Privato

osservazioni:

Ritengo che il problema sia che il servizio NLA (Network Location Awareness) di Windows sta rilevando una nuova rete che provoca la creazione di un nuovo profilo di rete che, per impostazione predefinita, diventa Pubblico (anche se sopra ho configurato i Criteri di gruppo locali per impostazione predefinita su Privato) . Molti computer mostrano che Windows ha rilevato molte volte una nuova rete non identificata, ovvero "Rete 14", ovvero 14 profili di rete diversi. Vedo queste molteplici profili al momento di rivedere i profili qui nel Registro di sistema: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles.

Tutti i 14 profili sono quando il computer era effettivamente collegato alla stessa rete sopra descritta.

Non sono stato in grado di trovare una risorsa che descriva esattamente come NLA genera un identificatore univoco per una rete e quindi perché potrebbe rilevare di aver scoperto una nuova rete.

Domanda:

Come posso impedire a Windows di identificare erroneamente la mia rete locale come nuova rete? Forse sarebbe d'aiuto se sapessi quali passi segue NLA per generare un identificatore univoco per una rete?


1
Ho modificato un po 'la tua domanda per aiutare a focalizzarla sulla richiesta di risolvere il problema reale. Vedi problema XY .
Dico Reintegrare Monica l'

NLA identifica una rete in base all'indirizzo MAC del gateway predefinito specificato per quella scheda di rete. È possibile che il tuo router sia diventato inaccessibile a questi computer? Il problema sembra interessare più computer in un breve lasso di tempo o è solo un utente un giorno, quindi un altro utente in un momento completamente diverso?
Dico Reintegrare Monica l'

Forse guarda Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ NetworkList \ Signatures \ Unmanaged o almeno in quella posizione nel registro - e vedi se DefaultGatewayMAC e DNSSuffix corrispondono a quello che ti aspetti
Ross

PaulH - Dai un'occhiata alla mia risposta quando hai un momento, questo è quello che ho usato con un successo piuttosto solido in un ambiente di produzione come ho inserito nella sezione Metodo 1 ma ho anche fornito maggiori dettagli con la sezione Metodo 2 della mia risposta. Spero che troverai una di queste soluzioni tanto utile quanto ho per questo problema.
Pimp Juice IT

Risposte:


5

Metodo 1

Un modo in cui ho affrontato questo problema in un sistema critico di Windows Server in un unico ambiente mantengo era con uno script batch che utilizza Set-NetConnectionProfile e netsh , e impostato in modo esplicito ogni attendibile NIC / adattatore sulla macchina privata presso all'avvio del sistema con Utilità di pianificazione utilizzando Run whether user is logged on or note l' Run with highest privilegesopzione.

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Nota: Mentre la nota di taglie indica " La soluzione non deve causare la perdita della connettività di rete da implementare ", ho voluto menzionare che poiché quando si verifica questo problema si ha comunque un'interruzione della rete, che l'esecuzione di questo script se il problema si verifica in modo casuale quando il sistema è non riavviato che semplicemente eseguendo questo stesso script risolverà comunque rapidamente il problema e ripristinerà l'accesso alla rete della macchina OS nell'ordine di lavoro e previsto.

Inoltre, è possibile utilizzare Get-NetConnectionProfile per ottenere i nomi di alias NIC e i numeri di indice da inserire nello script batch di esempio di seguito per le proprie esigenze e / o sistemi.

Script batch

@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

Di seguito sono riportati alcuni altri metodi, con uno dei tanti quello che hai provato ma l'ho lasciato lì per gli altri che si imbattono in questo post nel caso li aiuti, ma questi sono alcuni modi per impedirlo del tutto forse ma ci sono sarà sempre vantaggi e svantaggi di qualsiasi metodo tu scelga di usare, quindi scegli il tuo veleno e prova di conseguenza.

Metodo 2 (Metodi multipli)

Rete non identificata: passa da pubblico a privato o dominio

Se NLA non è in grado di determinare la posizione delle connessioni, la denomina "Non identificata" e contrassegna la posizione come pubblica. Scegli Pubblico perché è il più sicuro e non vorresti niente di meno se la connessione fosse sulla DMZ.

Esistono due modi semplici per risolvere questo problema. Uno utilizza la politica di sicurezza locale per modificare il percorso predefinito delle reti non identificate. Il secondo metodo utilizza una modifica alle proprietà della connessione di rete per fornire a NLA le informazioni necessarie per posizionare correttamente la posizione.

Utilizzando la politica di sicurezza locale

Attenzione: questo dovrebbe essere usato solo se il computer non avrà mai connessioni sulla LAN pubblica. Altrimenti, si corre il rischio di applicare un profilo firewall meno sicuro alla propria connessione pubblica.

  1. Apri " Criteri di sicurezza locali ".

  2. Fare clic su " Criteri di Gestione elenco reti " nel riquadro a sinistra. (Questa selezione è sepolta nelle versioni precedenti di Windows.)

  3. Fare doppio clic su " Reti non identificate " nel riquadro destro.

  4. Per i computer che esistono solo sulla rete privata, è OK impostare " Tipo di posizione " su " privato ".

    inserisci qui la descrizione dell'immagine

Utilizzo delle proprietà della connessione di rete

Non si tratta di aggiungere un IP gateway poiché non funziona correttamente su un server multihomed. Invece aggiungeremo un suffisso DNS in modo che NLA possa localizzare correttamente il controller di dominio, che è il modo in cui sa contrassegnare la posizione come "Rete di dominio".

  1. Vai a Connessioni di rete (dal Centro connessioni di rete e condivisione, fai clic su "Modifica impostazioni scheda").

  2. Vai alle proprietà di una connessione di rete contrassegnata come " Non identificato " ma sulla LAN privata.

  3. Vai alle proprietà per IPv4 .

  4. Fai clic sul pulsante " Avanzate ...".

  5. Seleziona la scheda DNS .

  6. Inserisci il tuo nome di dominio nella casella di testo per " Suffisso DNS per questa connessione: ".

Disabilitare e quindi abilitare la connessione per consentire a NLA di identificare nuovamente la posizione. Dopo aver abilitato la connessione, lo Stato dovrebbe cambiare in Nome dominio e Categoria di rete in "Rete di dominio". A seconda della configurazione, è probabile che sia necessario "correggere" solo una connessione per ottenere tutte le connessioni correlate per vedere il dominio.

Passa da privato a pubblico

Esistono due modi comuni per forzare l'NLA a contrassegnare una connessione come pubblica. Uno è utilizzare una regola firewall per bloccare NLA in modo che non abbia altra scelta che utilizzare la posizione predefinita. L'altro è utilizzare il registro per disabilitare NLA sulla connessione.

Utilizzando il firewall

Non l'ho provato ma la teoria sembra solida.

  1. Apri " Windows Firewall con sicurezza avanzata " (ad es wf.msc.).

  2. Vai a Regole in uscita .

  3. Fai clic su " Nuova regola ...".

  4. Usa queste impostazioni:

    • Tipo di regola: personalizzato
    • Programma: selezionare "Tutti i programmi", quindi fare clic su "Personalizza ...". Seleziona "Network Location Awareness" (il nome breve è NlaSvc).
    • Protocollo e porte: Tipo di protocollo = Qualsiasi.
    • Ambito: IP locali = Inserisci tutti i tuoi IP pubblici. Ricontrolla le connessioni con più IP.
    • Azione: blocco
    • Profilo: tutti
  5. Una volta abilitata la regola, disabilitare e quindi abilitare la connessione di rete per fare in modo che NLA identifichi nuovamente la posizione.

Utilizzando il registro

Non ho avuto questo lavoro per me, ma la mia circostanza potrebbe essere diversa dalla tua. Trovare il numero di connessione corretto è un po 'incostante perché ci sono molte più voci di quelle che ti aspetteresti.

  1. Esegui regedit

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

  3. Sotto dovresti vedere diverse chiavi etichettate con 0000, 0001, 0002 ecc ... Guardale attraverso e trova gli adattatori dove vuoi disabilitare NLA.

  4. Per ciascuno degli adattatori, aggiungi un nuovo valore DWORD denominato "* NdisDeviceType" e impostalo su 1 (assicurati di ottenere * all'inizio del nome).

Ottenere drastico

I profili di posizione sono ospitati nel registro e sembra innocuo eliminarli e consentire a Windows di ricostruirli. Avrai sicuramente bisogno di fare prima il backup del registro e probabilmente dovrai essere connesso al server tramite KVM piuttosto che remoto (RDP). Non mi assumerò alcuna responsabilità se scegli questo passaggio in quanto lo sto principalmente mettendo qui come riferimento.

La posizione dei profili è:

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

fonte


Il primo metodo sembra promettente. Non sono sicuro degli altri metodi che prevedono il riavvio del servizio NLA perché risolve sempre il problema, rendendo difficile sapere se il riavvio del servizio è stata la soluzione o l'altra azione. Ora ho solo bisogno di una macchina che stia facendo questo male per testare ....
Dico Reinstate Monica il

@TwistyImpersonator Sì, il metodo 1 è il metodo che ho usato e lo ho appena eseguito come avvio. In questo caso, si tratta di un server host virtuale Hyper-V con 4 schede di rete e garantire che funzioni come avvio finora ha risolto il problema per me con quel particolare sistema. Penso che ci sia stata un'altra volta a causa di uno switch di rete o del riavvio del router e invece di riavviare il server host virtuale ho appena eseguito lo script manualmente e il problema è stato risolto. Ho notato la domanda e pubblicato la soluzione che ho usato e l'altra risorsa citata che sembrava pertinente e potenzialmente utile.
Pimp Juice IT

Ho notato che hai messo la taglia, ma immagino di non essermi reso conto che fosse per le tue necessità piuttosto che cercare di ottenere una risposta dall'OP. Anche questo è buono a sapersi.
Pimp Juice IT

0

Ho avuto questo problema all'infinito su un solo sistema specifico. Si romperebbe tutto ad ogni riavvio. Ho provato tutte le soluzioni che hai menzionato. Dopo aver esaurito tutto il resto, ho deciso di disabilitare il servizio "Network Location Awareness". Da quello che posso dire non è necessario. Questo ha risolto definitivamente il mio problema. L'unico effetto collaterale che ho notato è che la finestra "Centro connessioni di rete e condivisione" sembra divertente. Questo servizio non esisteva prima di Windows 7 e non mi è affatto utile.

services.msc

"Conoscenza della posizione della rete", Tipo di avvio = "Disabilitato"


Hmmm, non sono sicuro che sia una buona idea in un ambiente di dominio ... o quando si prende un laptop tra reti affidabili e non affidabili. Qualche feedback su uno di questi scenari?
Dico Reintegrare Monica il

Lo sto facendo nel mio ambiente di dominio. Funziona alla grande. Se si utilizza il laptop in un ambiente non affidabile, è necessario disporre di altre protezioni. NLA non ti salverà. Tutto ciò che potrebbe fare è disabilitare automaticamente le condivisioni. Suggerirei di non consentire alcuna condivisione sui laptop.
HackSlash,

Senza NLA, come fanno i sistemi a passare tra il dominio e i profili privati, ad esempio quando un dipendente porta un laptop a casa?
Dico Reintegrare Monica il

Senza NLA non ci sono profili. Per cosa stai usando questi profili?
HackSlash,

Molti dei sistemi che gestisco consentono il traffico in entrata quando sono connessi alla rete del dominio, ma tale traffico viene bloccato quando i sistemi lasciano il dominio. È il modo in cui implementiamo la difesa in profondità ... i porti vengono aperti solo dove necessario e chiusi ovunque.
Dico Reintegrare Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.