Question

Je suis en train d'écrire un script Powershell qui agira comme un test de conformité de construction pour nos serveurs. L'une des choses que je dois faire est de détecter si le réseau IPv6 a été désactivée.

WMI indique ces informations se trouvent dans la propriété IPAddress de Win32_NetworkAdapterConfiguration, mais ne peut être à la fois IPv6 ou IPv4. Cela ne me donne pas un « oui / non » J'espère trouver.

D'autres mises en garde sont que je préférerais ne pas racler les détails en accédant au registre directement, ni gratter de la sortie d'une commande telle que ipconfig.

Compte tenu de l'environnement a un mélange de machines 2003/2008, peut-on penser à un moyen de tester pour IPv6?

Vive

Était-ce utile?

La solution 3

En fait, un collègue est venu avec une belle façon de le faire - un peu maladroit, mais des œuvres. :)

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

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

write-host $IPV6

Autres conseils

Vous pouvez utiliser la méthode .NET:

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

La propriété sera vrai s'il est possible de créer une socket datagramme IPv6. Cette propriété est également affectée par le fichier machine.config global, de sorte que le statut IPv6 ne peut pas toujours être précis.

Edit: Pour tester cela sur une machine distante, vous pouvez toujours utiliser powershell, mais il doit avoir installé PowerShell 2.0 et WinRM activé

.

Si ces deux conditions sont vraies, alors vous pouvez probablement utiliser Invoke-Command pour le faire.

test pour IPv6 serait généralement plus complexe qu'une réponse oui / non avec XP que vous avez,

  1. Le " version Microsoft TCP / IP 6 " composant réseau installé.
  2. Y at-il un adaptateur a une adresse IPv6 -. On peut supposer en général (1) implique (2)
  3. Si un adaptateur a une portée globale IPv6, à savoir non seulement un lien fe80 locale :: adresse préfixés ou de l'interface loopback, :: 1.

Presumaly (1) peut être trouvé avec un script Powershell tel que démontré par Microsoft:

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

Si vous voulez vérifier spécifiquement que l'IPv6 est activé et qu'il fonctionne, je dirais que la meilleure façon serait d'essayer de se connecter à un hôte de test. De cette façon, vous ne testera pas seulement quelques réglages de logiciel spécifique, mais vous trouverez également de telle sorte que toute la configuration de routage et tout autour d'elle fonctionne comme il se doit.

est ce que vous ne voulez pas faire, mais il semble que la meilleure méthode, va sur la sortie que netsh interface fournit.

Vous pouvez regardez ici pour ce que vous êtes après . Votre mise en œuvre serait plus simple, mais itérer sur les résultats de netsh interface ipv6 show interfaces est tout ce que vous avez besoin, si vous trouvez des interfaces, il est quelque part activée, si vous ne trouvez pas, ce n'est pas.

Je ne l'ai pas testé, mais la classe .NET Socket a une propriété OSSupportsIPv6. Donc, quelque chose le long des lignes

[System.Net.Sockets]::OSSupportsIPv6

La documentation dit « vrai si le système d'exploitation et les cartes réseau prennent en charge le protocole IPv6, sinon faux. » Il n'est pas clair pour moi si cela signifie que la valeur est basée sur ce que le système d'exploitation est capable, ou ce qu'il est configuré.

Je regardais cela dans mon aide locale, donc je n'ai pas un lien MSDN à portée de main. Ne devrait pas être trop difficile à trouver.

Je sais que c'est un vieux fil, mais je devais vérifier la même chose.

Pour vérifier ipv6 de liaison pour une utilisation de l'adaptateur spécifique:

 Get-NetAdapterBinding -Name 'NameOfNic' -ComponentID ms_tcpip6

Cela vous donnera l'état activé pour cet adaptateur.

Si vous voulez simplement récupérer cet état, vous pouvez utiliser:

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

Espérons que cela aide. Je l'ai fait vérifier que cela fonctionne aussi loin que 2012. docs.microsoft.com n'a pas la liste des versions ci-dessous par défaut pour 2012 / Win8

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top