Configuration Manager: perché un client risulta “Internet” e come riportarlo in Intranet (guida completa 2403)

Guida completa e operativa per capire perché un client di Configuration Manager si dichiara “Intranet” o “Internet”, come diagnosticare gli errori (incluso il caso post‑aggiornamento 2403) e come rimettere rapidamente in salute la comunicazione con l’MP.

Indice

Panoramica: cosa significa “Client is on Internet” e perché ti interessa

La modalità di connettività del client ConfigMgr (MECM/SCCM) influenza assegnazione del sito, distribuzione dei contenuti, gestione delle policy, inventario e compliance. Se un dispositivo interno viene rilevato come “Client is on Internet”:

  • non contatterà gli Management Point (MP) interni contrassegnati come Intranet;
  • potrebbe cercare una Cloud Management Gateway (CMG) o un proxy inesistente;
  • potrebbe non ricevere policy, non registrarsi o fallire le installazioni.

Capire come il client decide Intranet/Internet è il primo passo per risolvere le anomalie in modo sistematico.

Come il client ConfigMgr decide: meccanismi e punti di controllo

Il client utilizza una combinazione di fonti: cache SLM (Service Location Management), profilo di rete del sistema operativo (NLA), confini di sito (Boundary/Boundary Group), fallback di stato (FSP), log e impostazioni locali/registro.

MeccanismoFunzionamentoCosa controllare / correggere
Management Point (MP)Il client interroga gli MP elencati nella cache SLM. Se riesce a contattare un MP contrassegnato “Intranet”, si dichiara “Intranet”; in caso contrario tenta gli MP “Internet”.– Verificare che gli MP interni siano raggiungibili (DNS, firewall, IIS).
– Se esistono MP Internet/CMG, assicurarsi che le URL siano corrette e firmate da CA affidabile.
Network Location Awareness (NLA)Se l’interfaccia di rete riceve il profilo “Domain” da NLA, il client presume di trovarsi in Intranet.– Controllare che la macchina sia membro del dominio e che i DC rispondano.
– NIC multiple o VPN possono far ricadere NLA in “Public”.
Boundary & Boundary GroupL’indirizzo IP/Subnet/AD‑Site del client deve rientrare in un Boundary che a sua volta appartiene a un Boundary Group con site‑systems Intranet.– Evitare sovrapposizioni IP.
– Inserire i nuovi subnet dopo migrazioni o after‑hours.
Fallback Status Point (FSP)Se il client non contatta un MP, invia lo stato al FSP: anche questo aiuta a definire la topologia.– Verificare che l’FSP sia configurato solo per la rete interna.
Log e registroLocationServices.log, ClientLocation.log e CCMSetup.log tracciano i passaggi sopra.– Cercare voci “Unable to find an Intranet MP”, “Client is on internet”, “AssignedSite=”.
Chiavi di registro/parametriValori quali HKLM\Software\Microsoft\CCM\ClientAlwaysOnInternet o parametri di installazione (ad es. /host:cmg.contoso.com) possono forzare la modalità.– Rimuovere eventuali override non necessari.

Procedura di base per la diagnosi

  1. Eseguire nslookup <MP interno> e ping per verificare la risoluzione interna.
  2. Nel client aprire Configuration Manager Control Panel → Network e controllare la modalità.
  3. Analizzare LocationServices.log a partire da un riavvio del servizio SMS Agent Host.
  4. Se la cache SLM è corrotta, cancellare %WinDir%\CCM\SCClient*.dat e riavviare il servizio.

Flusso decisionale (riassunto)

  1. Connettività: l’MP interno risponde su 443? (Test-NetConnection -ComputerName mp.contoso.com -Port 443)
  2. NLA: il profilo è Domain? (Get-NetConnectionProfile)
  3. Boundary: l’IP rientra in un Boundary assegnato a un Boundary Group con MP Intranet?
  4. Cache SLM: presente un riferimento errato a MP/CMG? (pulizia SCClient*.dat)
  5. Override: ClientAlwaysOnInternet = 1? (rimuovere)
  6. Certificato: EKU Client Authentication presente e mapping FQDN corretto?

Script utili per verifiche e fix rapidi

Verifica stato, NLA, proxy e raggiungibilità MP

# Esegui in PowerShell elevato
$mp = "mp.contoso.com"

Write-Host "=== NLA ==="
Get-NetConnectionProfile | Format-Table Name, NetworkCategory, IPv4Connectivity

Write-Host "=== Proxy di sistema (WinHTTP) ==="
netsh winhttp show proxy

Write-Host "=== Reachability MP 443 ==="
Test-NetConnection -ComputerName $mp -Port 443 -InformationLevel Detailed

Write-Host "=== Ultime righe LocationServices.log ==="
Get-Content "$env:windir\CCM\Logs\LocationServices.log" -Tail 50 

Funzione “Get‑CMClientMode” (parsing dei log)

function Get-CMClientMode {
  $ls = Join-Path $env:windir "CCM\Logs\LocationServices.log"
  if (-not (Test-Path $ls)) { return "Log non trovato: $ls" }
  $lines = Get-Content $ls -Tail 500 | Select-String -Pattern "Client is on internet|Currently detected as intranet|Intranet|Internet" -SimpleMatch
  if ($lines) { return ($lines | Select-Object -Last 1).Line }
  else { return "Nessun indicatore recente trovato in LocationServices.log" }
}
Get-CMClientMode

Reset della cache SLM e rimozione override

# Ferma il servizio client, pulisci SLM e override, riavvia
Stop-Service ccmexec -Force
Get-ChildItem "$env:windir\CCM" -Filter "SCClient*.dat" -ErrorAction SilentlyContinue | Remove-Item -Force
reg delete "HKLM\Software\Microsoft\CCM" /v ClientAlwaysOnInternet /f 2>$null
Start-Service ccmexec

Reinstallazione pulita (quando necessario)

# Tieni a portata di mano sitecode e MP
$SiteCode = "ABC"
$MP = "mp.contoso.com"

& "$env:windir\ccmsetup\ccmsetup.exe" /uninstall
Start-Sleep -Seconds 10
& "$env:windir\ccmsetup\ccmsetup.exe" /mp:$MP SMSSITECODE=$SiteCode CCMHOSTNAME=$MP /UsePKICert /NoCRLCheck 

Controllo rapido del certificato client

# Mostra certificati con EKU Client Authentication adatti a ConfigMgr
Get-ChildItem Cert:\LocalMachine\My | Where-Object {
  $_.EnhancedKeyUsageList.ObjectId -contains "1.3.6.1.5.5.7.3.2" # Client Authentication
} | Select-Object Subject, NotAfter, Thumbprint

Caso pratico post‑aggiornamento 2403: alcuni client rilevati come “Internet”

Sintomi ricorrenti

  • In CCMSetup.log: IsSslClientAuthEnabled - Determining provisioning mode state failed with 80070002 Client is on internet
  • Il client cerca un proxy che non esiste e non si registra con l’MP interno (solo‑HTTPS).

Possibili cause individuate

CategoriaDettaglio
Cache SLM obsoletaL’aggiornamento 2403 può lasciare riferimenti a vecchi MP o CMG non più validi.
Profilo NLA erratoSu alcune VM/Server 2022 il profilo di rete passa da “Domain” a “Public” dopo reboot.
Certificato clientCatena PKI valida ma il certificato selezionato non ha l’Enhanced Key Usage “Client Authentication” o non corrisponde al FQDN.
Chiave di overrideClientAlwaysOnInternet=1 talvolta rimane impostata da precedenti test IBCM/CMG.
Bug 2403Hotfix (ad es. KB28458746 e successivi) risolvono incoerenze di localizzazione client.

Azioni correttive consigliate

  1. Pulizia e riparazione del client ccmrepair /retry:0 oppure ccmsetup.exe /uninstall seguita da reinstallazione con sitecode e MP espliciti
  2. Flush della cache SLM e reset registro net stop ccmexec del /Q %WinDir%\CCM\SCClient*.dat reg delete HKLM\Software\Microsoft\CCM /v ClientAlwaysOnInternet /f net start ccmexec
  3. Verifica NLA
    • Assicurarsi che l’interfaccia primaria sia “Domain”.
    • Rimuovere NIC virtuali inutilizzate e adattatori di vecchie VPN.
  4. Controllo certificati
    • In CCMSetup.log cercare Selected Certificate.
    • Selezione manuale tramite client setting o script (certutil -repairstore).
  5. Boundary e Boundary Groups
    • Riesaminare IP/Subnet delle macchine interessate (soprattutto nuovi VLAN/Subnet).
    • Monitorare ClientLocation.log dopo ogni modifica.
  6. Applicare gli hotfix correnti
    • Importare l’ultimo rollup per 2403 (incluso KB28458746) da Updates and Servicing.
    • Riavviare i client o forzare reinstallazione dell’agente se richiesto.

Convalida post‑fix (cosa aspettarsi nei log)

  • LocationServices.log: righe del tipo “Attempting to retrieve Default Management Points from SLP/AD” seguite da “Assigned MP: https://mp.contoso.com” e “Currently detected as intranet”.
  • ClientIDManagerStartup.log: registrazione completata (“RegTask: Success”), nessun fallback a FSP.
  • CCMHttp.log/CCMHTTPS.log: handshake TLS completato e risposta 200/OK dal virtual directory /ccm_system.

Approfondimento: NLA, VPN e profili “ballerini”

NLA determina il profilo in base all’autenticazione al dominio e ad altri fattori. In presenza di:

  • VPN split‑tunneling: il traffico verso i DC potrebbe non passare, NLA resta “Public”.
  • NIC virtuali di vecchi hypervisor/containers: possono prendere priorità o introdurre route / metriche anomale.
  • Clock skew: un tempo di sistema fuori sync (Kerberos) impedisce il riconoscimento del dominio.

Rimedi pratici

  • Forzare il profilo corretto rimuovendo NIC obsolete; verificare metrica interfacce (Get-NetIPInterface).
  • Assicurarsi che il DNS primario punti ai DC interni; evitare DNS pubblici come primari sui client.
  • Resync dell’orologio: w32tm /resync.

Boundary: evitare gli “angoli ciechi”

Boundary e Boundary Group devono riflettere tutte le subnet in uso. Migrazioni di rete, nuove VLAN e siti di DR spesso introducono IP non mappati, causando fallback non desiderati o contatti verso MP/CMG errati.

Anti‑patternRischioCorrezione consigliata
Boundary “a ragnatela” con sovrapposizioniClient vaganti tra group diversi; bilanciamento incoerenteSubnet puntuali per area e aggregazione, nessuna sovrapposizione
Uso esclusivo di AD‑Site senza manutenzioneNuovi subnet non ereditati, client “orfani”Mix IP/Subnet + AD‑Site; processo di onboarding delle nuove VLAN
Boundary Group senza MP intranet assegnatiRicerca MP Internet o CMG quando non necessarioAssociare almeno un MP intranet per ogni gruppo che serve client on‑prem

Certificati: i 3 controlli che risolvono l’80% dei casi HTTPS

  1. EKU: il certificato selezionato deve includere Client Authentication (OID 1.3.6.1.5.5.7.3.2).
  2. Subject/SubjectAltName: il nome deve corrispondere al FQDN del client (quando richiesto dalla tua PKI/policy).
  3. Catena: l’intera chain deve essere presente nel Local Machine (Root + Intermediate); attenzione a CRL/OCSP non raggiungibili.

Esempio di selezione manuale in ambienti con più cert validi:

# Imposta la selezione certificato tramite client setting o WMI sezione CCM
(approccio di massima; preferire le Client Settings quando possibile)

Playbook operativo: dal sintomo al fix

Sintomo A: “Client is on internet” su PC fisso in LAN

  1. DNS & 443: Test-NetConnection verso l’MP interno deve riuscire.
  2. NLA: assicurati che il profilo sia Domain. Se “Public”, sistemare join, DNS o metriche.
  3. Log: LocationServices.log → cerca “Unable to find an Intranet MP”.
  4. Cache: elimina SCClient*.dat e riavvia ccmexec.
  5. Override: cancella ClientAlwaysOnInternet.
  6. Cert (se HTTPS): verifica EKU e thumbprint usato.

Sintomo B: dopo upgrade 2403, ~15 macchine solo

  1. Pulizia SLM + ccmrepair in remoto (PSRemoting).
  2. Riesamina Boundary delle nuove VLAN coinvolte.
  3. Applica rollup/hotfix (incluso KB28458746 ove applicabile).
  4. Se necessario, reinstallazione con MP esplicito.

Sintomo C: client prova a usare un proxy “fantasma”

  1. netsh winhttp show proxy → se impostato, considera reset (netsh winhttp reset proxy).
  2. Verifica policy/MDM che impongono proxy di sistema.
  3. Controlla applicazioni di sicurezza (SSL inspection) che interferiscono con TLS.

Automazione: verifica post‑patch e monitoraggio continuo

Automatizza il controllo della modalità con uno script che interroga i log e restituisce un report CSV.

$computers = Get-Content .\fleet.txt
$results = foreach ($c in $computers) {
  try {
    $line = Invoke-Command -ComputerName $c -ScriptBlock {
      $ls = "$env:windir\CCM\Logs\LocationServices.log"
      if (Test-Path $ls) {
        (Get-Content $ls -Tail 400 | Select-String "Client is on internet|Currently detected as intranet" | Select-Object -Last 1).Line
      }
    }
    [pscustomobject]@{ Computer=$c; Mode=$line }
  } catch {
    [pscustomobject]@{ Computer=$c; Mode="Errore o offline" }
  }
}
$results | Export-Csv .\ClientModeReport.csv -NoTypeInformation

Integra il report con Client Health in console e configura alert su transizioni ripetute Intranet↔Internet. In presenza di CMG, confronta il numero di richieste verso la CMG rispetto al baseline: picchi inattesi possono indicare boundary mancanti o NLA “Public”.

Appendice: log, percorsi e chiavi di registro

ElementoPercorso / ChiaveNote
LocationServices.log%WinDir%\CCM\Logs\LocationServices.logRicerca e selezione MP, stato Intranet/Internet
ClientLocation.log%WinDir%\CCM\Logs\ClientLocation.logBoundary e assegnazione sito
CCMSetup.log%WinDir%\CCMSetup\Logs\CCMSetup.logInstallazione agente, certificati selezionati, errori iniziali
CCMHTTPS.log / CCMHTTP.log%WinDir%\CCM\Logs\CCMHTTPS.logDettagli handshake TLS / risposta IIS
Cache SLM%WinDir%\CCM\SCClient*.datContiene informazioni su MP/CMG; eliminare per rigenerare
Override InternetHKLM\Software\Microsoft\CCM\ClientAlwaysOnInternetSe presente e impostata a 1, forza la modalità Internet
Proxy WinHTTPnetsh winhttp show proxyImpatta download policy e HTTP client

Domande frequenti

Il client è Intranet ma usa comunque la CMG: è normale?

Può succedere se nei Boundary Group sono selezionate preferenze di contenuto/MP che includono cloud (per carichi specifici). Se non desiderato, rivedi i “Site system servers” associati e le priorità. Serve davvero l’FSP oggi?

L’FSP resta utile per raccogliere stati dai client non assegnati o che non raggiungono gli MP. Tienilo solo in rete interna e monitora eventuali fiammate di errori. È un problema se NLA dice “Public” ma tutto sembra funzionare?

Sì, perché molte decisioni (policy, boundary) dipendono anche da questo segnale. Sistema NLA per evitare derive future, specialmente con VPN e laptop ibridi. HTTPS obbligatorio: quale certificato usa il client?

Controlla in CCMSetup.log la riga Selected Certificate. Verifica EKU e scadenza. In caso di più certificati validi, imposta criteri di selezione (Client Settings) o normalizza il template PKI.

Checklist finale (copy‑paste)

  • MP interni raggiungibili su 443? (DNS/Firewall/IIS ok)
  • NLA = Domain? (no NIC superflue, DNS verso DC, orologio sincronizzato)
  • Boundary/Boundary Group completi e senza sovrapposizioni
  • Cache SLM pulita (SCClient*.dat)
  • Nessun override ClientAlwaysOnInternet
  • Certificati con EKU corretta e chain completa (in HTTPS)
  • Proxy WinHTTP coerente o disabilitato se non necessario
  • Hotfix/rollup 2403 applicati; in caso, ccmrepair o reinstall
  • Verifica nei log: “Assigned MP (Intranet)” e “Currently detected as intranet”

Raccomandazioni finali

  • Documenta MP, Boundary e certificati (template, EKU, durata). Evita conoscenza tribale.
  • Automatizza il post‑patch con script che leggono ClientLocation.log e restituiscono la modalità con Get‑CMClientMode.
  • Monitora la console Client Health e configura alert sulle transizioni anomale Intranet↔Internet.
  • Standardizza il profilo di rete riducendo NIC virtuali, VPN legacy e DNS “creativi”.
  • Pianifica la manutenzione dei Boundary con ogni cambio IP (change management obbligatorio).

Seguendo la diagnosi sui log, la pulizia della cache e l’applicazione degli hotfix si risolve nella maggior parte dei casi la rilevazione errata “Client is on internet” e si ripristina una corretta comunicazione con l’MP intranet.


Riferimenti operativi sintetici

  • Servizi e processi: SMS Agent Host (ccmexec), Windows Update se co‑gestito, WinHTTP.
  • Virtual directory tipici: /ccmsystem, /ccmclient.
  • Test TLS: Invoke-WebRequest https://mp.contoso.com/ccm_system/request (account SYSTEM/contesto amministrativo), validazione certificato server.
  • Server‑side: verifica MP Control Manager, log IIS (%SystemDrive%\inetpub\logs\LogFiles) e certificato del sito web (IIS Bindings).

Errori comuni da evitare

  • Imporre ClientAlwaysOnInternet durante un test e dimenticarlo abilitato.
  • DNS pubblici come primari nei client interni.
  • Boundary definiti solo per AD‑Site senza un processo di aggiornamento delle subnet.
  • Certificato client senza EKU corretta o con CN non coerente con la policy aziendale.
  • Rimozione “a caldo” di CMG o MP senza pulizia SLM lato client.

Esempi pratici di comandi “one‑liner”

# 1) Ultima modalità rilevata
Select-String -Path "$env:windir\CCM\Logs\LocationServices.log" -Pattern "Client is on internet","intranet" | Select-Object -Last 1

2) Connettività veloce vs MP

tnc mp.contoso.com -port 443

3) Pulizia rapida SLM (attenzione: ferma/avvia il servizio)

Stop-Service ccmexec -Force; Remove-Item "$env:windir\CCM\SCClient*.dat" -Force -ErrorAction SilentlyContinue; Start-Service ccmexec

4) NLA & metrica

Get-NetConnectionProfile; Get-NetIPInterface | Sort-Object InterfaceMetric | Format-Table InterfaceAlias, AddressFamily, InterfaceMetric

5) Proxy WinHTTP

netsh winhttp show proxy 

Conclusioni

La distinzione Intranet/Internet nel client ConfigMgr nasce da un equilibrio tra fonti locali (NLA, registro, cache SLM) e topologia di sito (MP, boundary, FSP). Un approccio disciplinato—con check di rete, verifica NLA, log‑driven troubleshooting e pulizia della cache—consente di riportare i client in Intranet in tempi brevi, anche in seguito a upgrade come il 2403. Stabilizzare la postura con processi di change per Boundary, standardizzazione DNS e automazione post‑patch evita recidive e migliora la resilienza operativa dell’infrastruttura.

Indice