Ben*_*ort 2 windows powershell network-programming ipv6 powershell-2.0
我正在编写一个PowerShell脚本,它将作为我们服务器的构建一致性测试.我需要做的一件事是检测是否已禁用IPv6网络.
WMI表示此信息可以在Win32_NetworkAdapterConfiguration的IPAddress属性中找到,但可以是IPv6或IPv4.这并没有给我一个我希望找到的"是/否"答案.
其他警告是我不希望通过直接访问注册表来刮掉细节,也不会从ipconfig等命令的输出中删除.
鉴于我们的环境混合了2003/2008年的机器,谁能想到一种测试IPv6的方法?
干杯
您可以使用.NET方式:
Write-Host 'OS Supports IPv6: ' $( [System.Net.Sockets.Socket]::OSSupportsIPv6 )
如果可以创建IPv6数据报套接字,则该属性为true.此属性还受全局machine.config文件的影响,因此IPv6状态可能并不总是准确的.
编辑:要在远程计算机上进行测试,您仍然可以使用powershell,但必须安装PowerShell 2.0并启用WinRM.
如果这两个条件都成立,那么您可以使用Invoke-Command来执行此操作.
事实上,一位同事想出了一个很好的方法——有点笨拙,但很有效。:)
$IPV6 = $false
$arrInterfaces = (Get-WmiObject -class Win32_NetworkAdapterConfiguration -filter "ipenabled = TRUE").IPAddress
foreach ($i in $arrInterfaces) {$IPV6 = $IPV6 -or $i.contains(":")}
write-host $IPV6
| 归档时间: | 
 | 
| 查看次数: | 26359 次 | 
| 最近记录: |