Vediamo quali sono e come si usano i comandi di networking e diagnosi di rete sulla powershell.
In Windows Server 2012 R2 vi sono delle nuove funzionalità diagnostiche per isolare rapidamente i problemi di rete, queste funzioni sono disponibile solo con l’uso della powershell e non dal classico prompt dei comandi.
Alla scoperta delle impostazioni di sistema
Visualizzazione della configurazione corrente
Visualizzare e comprendere la configurazione di un sistema è il primo passo per poter configurare le impostazioni di rete di base tramite PowerShell.
In questa introduzione, è esattamente ciò che ci auguriamo di insegnare presentandovi alcuni cmdlet di PowerShell che descrivono informazioni di rete approfondite. Mostreremo anche un collegamento con un cmdlet PowerShell, Get-NetIPConfiguration e il suo alias GIP.
GIP è unico per visualizzare la configurazione di rete del tuo computer. GIP combina elementi che forniscono informazioni dettagliate e agiscono da “orchestrator” per fornire una visione completa di come viene configurato il sistema. Per comprendere appieno GIP, esamineremo innanzitutto i cmdlet sottostanti che utilizza.
Il primo cmdlet è Get-NetAdapter. Questo cmdlet recupera le proprietà della scheda di rete di base per tutti gli adattatori fisici collegati al sistema. Descrive il tipo di adattatore, il nome dell’adattatore, l’indirizzo MAC, la velocità di collegamento e il suo stato corrente. Per impostazione predefinita vengono restituiti solo gli adattatori visibili. Questa informazione può essere utile quando si tenta di risolvere un problema su un computer remoto. Questo ti dirà gli adattatori sul sistema in modo da sapere con cosa stai lavorando.
Se si esegue in un ambiente Hyper-V, è disponibile anche un cmdlet per raccogliere informazioni per le schede di rete VM su quell’host. Una NIC di macchine virtuali è l’equivalente di una scheda di rete per una macchina virtuale.
Nell’esempio sopra abbiamo scelto una VM specifica ma puoi anche cercare tutte le schede NIC di VM specificando il carattere jolly o il carattere ‘*’ dopo il cmdlet. Di seguito è riportato un esempio di questo cmdlet.
Get-NetIPAddress restituirà gli indirizzi IP che sono configurati su quel sistema di sistema sia per IPv6 che per IPv4. Questo può essere eseguito all’interno di una VM o sull’host.
Questi cmdlet forniscono una grande quantità di informazioni dettagliate.
GIP è un alias per Get-NetIPConfiguration e ha lo scopo di fornire un output conciso che fornirà una panoramica della configurazione di rete del sistema senza dover scavare nei dettagli dei cmdlet spiegati sopra. GIP fornisce gli indirizzi IPv4 / IPv6, i gateway, l’alias / descrizione / indice di interfaccia e i server DNS degli adattatori con uno stato attivo e solo le informazioni di interfaccia degli adattatori che sono inattivi.
È possibile utilizzare il flag -Detailed con GIP per visualizzare ulteriori informazioni.
Come la maggior parte dei cmdlet di PowerShell, Get-NetIPConfiguration restituisce oggetti ricchi di script. Ad esempio, la rotta predefinita è accessibile direttamente.
Test di Connettività
Windows Server 2012 R2 supporta un nuovo cmdlet per il test della connettività ICMP e TCP, denominato Test-NetConnection (TNC).
Ping e Traceroute
Ping, nslookup e tracert sono strumenti di base del commercio di reti. Tuttavia, per molti scenari, TNC è un’alternativa più adattabile a script e utilizzabile per questi strumenti. Fornisce molte più informazioni in un singolo cmdlet per aiutare a risolvere rapidamente una connessione.
Ecco un esempio di utilizzo di TNC per testare la connettività a www.xbox.com.
L’oggetto di uscita di TNC include gli oggetti WMIv2 rilevanti della macchina locale. Ciò significa che puoi scrivere direttamente contro di loro. Di seguito è riportato un esempio di utilizzo di TNC per rinominare la scheda di rete utilizzata per impostazione predefinita per raggiungere www.xbox.com.
L’utilizzo del flag -TraceRoute restituirà l’elenco degli host sul percorso della destinazione specificata.
Test connettività TCP
Mentre testare la connettività ICMP è un passo comune per la risoluzione dei problemi, la maggior parte delle volte sei interessato a risolvere un problema di connettività TCP. TNC consente di testare la connettività a un host e una porta remoti specificati.
Test connettività remote desktop
TNC ha alcune parole chiave comuni per semplificare la selezione di quale porta TCP testare. Ad esempio, per verificare la connettività del desktop remoto, utilizzare la parola chiave RDP. Nell’esempio seguente è possibile vedere che il ping è riuscito ma il test TCP sulla porta remota 3389 non è riuscito.
IPSec e Network Isolation
Nell’esempio precedente, non ero in grado di eseguire il desktop remoto sul mio server di casa, HomeBase. Usiamo un flag dettagliato per vedere più informazioni.
Il campo MatchingIPSecRules ci dice quali regole IPsec stanno tentando di proteggere la connessione, in questo caso le regole IPsec che il reparto IT di Microsoft ha distribuito per DirectAccess. Perché questo è PowerShell, la proprietà in realtà è un oggetto WMI ricco.
Il campo NetworkIsolationContext indica la funzionalità che le app di archiviazione di Windows devono utilizzare per accedere alla risorsa. Per consentire alle store apps di Windows di accedere a HomeBase, è necessario dichiarare la funzionalità della rete privata.
Se ti stai chiedendo perché DirectAccess non funzioni, è perché non ho fornito le credenziali della mia smartcard al sistema.
Scrpting Facile con TNC
Ci sono molti elementi di TNC che aiutano con lo scripting. Alcune caratteristiche chiave sono specificate di seguito:
-
Se la risoluzione DNS non riesce sull’host specificato, viene generata un’eccezione e può essere rilevata.
-
Utilizzando il parametro InformationLevel, è possibile far funzionare TNC in modalità “silenziosa”. Ciò significa che TNC restituisce semplicemente un booleano che indica se la connessione è riuscita o meno