Domanda

Sto scrivendo uno script PowerShell che fungerà da test di conformità costruire per i nostri server. Una delle cose che devo fare è rilevare se networking IPv6 è stato disattivato.

WMI indica che queste informazioni si possono trovare nella proprietà IPAddress di Win32_NetworkAdapterConfiguration ma può essere sia IPv6 o IPv4. Questo non mi dà un "sì / no" Spero di trovare.

Altri avvertimenti sono che io preferirei non raschiare i dettagli accedendo direttamente il Registro di sistema, né raschiare dal l'output di un comando come ipconfig.

Dato il nostro ambiente è un mix di macchine 2003/2008, qualcuno può pensare a un modo per testare IPv6?

Saluti

È stato utile?

Soluzione 3

In realtà, un collega si avvicinò con un bel modo di farlo - un po 'goffo, ma opere. :)

$IPV6 = $false
$arrInterfaces = (Get-WmiObject -class Win32_NetworkAdapterConfiguration -filter "ipenabled = TRUE").IPAddress

foreach ($i in $arrInterfaces) {$IPV6 = $IPV6 -or $i.contains(":")}

write-host $IPV6

Altri suggerimenti

È possibile utilizzare il modo NET:

Write-Host 'OS Supports IPv6: ' $( [System.Net.Sockets.Socket]::OSSupportsIPv6 )

La proprietà sarà vero se è possibile creare un datagram socket IPv6. Questa struttura è influenzata anche dal file machine.config globale, quindi lo stato di IPv6 potrebbe non essere sempre accurata.

Modifica: Per provare questo su una macchina remota, è comunque possibile utilizzare PowerShell, ma deve avere installato PowerShell 2.0 e WinRM abilitati

.

Se queste due condizioni sono vere, allora probabilmente si può utilizzare Invoke-Command di farlo.

Test per IPv6 di solito è più complicato di una risposta sì / no con XP che hai,

  1. È il " versione 6 Microsoft TCP / IP" componente di rete installato.
  2. C'è un adattatore ha un indirizzo IPv6 -. Si potrebbe supporre di solito (1) implica (2)
  3. Se un adattatore ha un global-ambito IPv6, vale a dire non solo un locale FE80 :: prefissato indirizzo o di loopback interfaccia di collegamento, :: 1.

Presumaly (1) può essere trovato con uno script PowerShell come dimostrato da Microsoft:

http: //gallery.technet .microsoft.com / ScriptCenter / it-IT / c4eb1596-7ac9-4be7-A711-b43446a3e3df

Se si desidera controllare specificamente che IPv6 sia abilitato e di lavoro, direi che il modo migliore sarebbe quello di cercare di connettersi a un host di prova. In questo modo, non sarà solo provare qualche impostazione software specifico, ma dovrete anche scoprire in modo che tutta la configurazione del routing e tutto intorno funziona come dovrebbe.

Questo è quello che non vuole fare, ma sembra che il metodo migliore, andando oltre l'output che netsh interface fornisce.

Si consiglia di guarda qui per quello che stai dopo . L'implementazione sarebbe più semplice, ma scorrere il risultato netsh interface ipv6 show interfaces è tutto ciò che serve, se trovate le interfacce, è abilitato da qualche parte, se non si trova qualcuno, non lo è.

Non ho testato questo, ma la classe .NET Socket ha una proprietà OSSupportsIPv6. Quindi, qualcosa sulla falsariga

[System.Net.Sockets]::OSSupportsIPv6

La documentazione dice "vero se il sistema operativo e le schede di rete supportano il protocollo IPv6, altrimenti false." Non mi è chiaro se questo significa che il valore si basa su ciò che il sistema operativo è in grado di, o di ciò che è configurato per.

Ho guardato questo nel mio aiuto locale, in modo da non avere un collegamento MSDN a portata di mano. Non dovrebbe essere troppo difficile da trovare.

So che questo è un vecchio thread, ma avevo bisogno di verificare la stessa cosa.

Per controllare vincolante per un uso adattatore specifico IPv6:

 Get-NetAdapterBinding -Name 'NameOfNic' -ComponentID ms_tcpip6

Questo vi darà lo stato abilitato per la scheda.

Se si vuole solo recuperare quello stato si può usare:

 (Get-NetAdapterBinding -Name 'NameOfNic' -ComponentID ms_tcpip6).Enabled

Spero che questo aiuti. Ho fatto controllare che questo funziona nel lontano 2012. docs.microsoft.com non elencare le versioni di sotto di default per il 2012 / Win8

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top