DNS Suffixes are text that are appended to a host name in order to query DNS for an IP address. DNS works by use of “Domains”, equitable to namespaces and usually are a textual value that may or may not be “dotted” with other domains. “Support.microsoft.com” could be considers a domain or namespace for which there are likely many web servers that can respond to requests to that domain. There could be a server named SUPREDWA.support.microsoft.com, for example. The DNS suffix in this case is the domain “support.microsoft.com”.
Il suffisso DNS è un parametro che – all’interno di una rete casalinga o aziendale – ti aiuta a raggiungere facilmente i dispositivi connessi alla rete stessa. Non importa che tu conosca il loro indirizzo IP, ci pensa il tuo DNS (che può risiedere sul router stesso). Il suffisso può essere specificato manualmente nelle impostazioni della scheda di rete dei vari dispositivi o – più corretto (e generalmente è così) – sul router, che lo aggiungerà quindi da solo ai dispositivi, in coda al loro nome (hostname). Per capirci: se sei utilizzatore di un apparato FRITZ!, è facile che tu ti sia accorto che la tua rete casalinga / d’ufficio ha come suffisso DNS “fritz.box“.
Ora: se per i prodotti FRITZ! non ho mai notato malfunzionamenti, blocchi, anomalie causate dal suffisso DNS, non posso dire lo stesso per quello imposto dai modem / router forniti da TIM, i quali vanno ad aggiungere un homenet.telecomitalia.it
che – talvolta – rompe le scatole al funzionamento di applicazioni aziendali e non solo, costringendo il tecnico connesso in assistenza remota alla rimozione del suffisso dal PC malcapitato, riportando poi la situazione alla normalità e permettendo all’utente finale di lavorare correttamente.
Potrai capire bene che in un periodo (ormai lungo) in cui il lavoro da casa vive e lotta con noi (fortunatamente), questa cosa può essere non solo deleteria, ma decisamente controproducente sulle macchine aziendali fuori dalla rete di dominio. Per questo motivo ho scritto qualche riga di PowerShell e l’ho data in pasto a Kace, affinché possa eseguirla ogni ora sui client sparsi per il nostro stivale, così da cercare coloro che hanno connettività casalinga TIM e rimuovere – dove necessario – quel suffisso DNS prima che combini qualche guaio che si rifletta poi sull’HelpDesk di primo livello. Lo script è pubblico e disponibile su Gist, agevolo:
<# | |
Remove homenet.telecomitalia.it from Windows DNS Suffix | |
GSolone 22/3/22 | |
Credits: | |
https://superuser.com/a/1507551 | |
https://docs.microsoft.com/en-us/powershell/module/dnsclient/set-dnsclientglobalsetting?view=windowsserver2022-ps&viewFallbackFrom=win10-ps | |
https://www.mssqltips.com/sqlservertip/5459/how-to-modify-the-global-dns-configuration-on-servers-using-powershell/ | |
https://adamtheautomator.com/powershell-replace/ | |
#> | |
try { | |
$dnsCGSetting = Get-DnsClientGlobalSetting | |
if($dnsCGSetting.SuffixSearchList.Contains('homenet.telecomitalia.it')) { | |
$dnsCGClean = $dnsCGSetting.SuffixSearchList.replace('homenet.telecomitalia.it','') | |
Set-DnsClientGlobalSetting -SuffixSearchList $dnsCGClean | |
Write-Host "Telecom suffix removed." | |
} else { | |
Write-Host "No Telecom suffix found." | |
} | |
} catch { | |
Write-Host "An error occurred:" | |
Write-Host $_.ScriptStackTrace | |
} |
Il funzionamento è tanto stupido quanto chiaro: se all’interno delle impostazioni del client DNS trovo un suffisso che fa match con homenet.telecomitalia.it
, provvedo a eliminarlo senza toccare gli altri presenti. La modifica è immediata, non richiede riavvio della connessione (o peggio della macchina), ed è totalmente trasparente per l’utente. Può essere eseguito da un utente locale di sistema (che poi è quello proposto come predefinito da Kace) e/o anche manualmente se lo desideri (servirà però essere almeno amministratori locali della macchina).
Lo script produce un risultato a video che dice se il suffisso è stato rimosso o se non è stato trovato affatto. Lato Kace ti basterà caricare lo script come dipendenza, quindi eseguire un programma:
- Directory:
$(KACE_SYS_DIR)\WindowsPowerShell\v1.0
- File:
powershell.exe
- Parameters:
-executionpolicy remotesigned -File $(KACE_DEPENDENCY_DIR)\NomeScript.ps1
Dove ovviamente al posto di NomeScript.ps1
dovrai specificare il reale nome del tuo file / script PowerShell aggiunto alle dipendenze. Al solito: in caso di dubbi, sai dove trovare l’area commenti. Lo stesso dicasi per suggerimenti, consigli, lettere d’amore, varie ed eventuali.
#StaySafe
L'articolo potrebbe non essere aggiornato
Questo post è stato scritto più di 5 mesi fa, potrebbe non essere aggiornato. Per qualsiasi dubbio ti invito a lasciare un commento per chiedere ulteriori informazioni! :-)