Powershell - 搜索以太网适配器时脚本的奇怪问题

时间:2014-03-17 22:46:56

标签: powershell ethernet

我甚至不确定这是编程问题还是Windows中的奇怪问题

我在PowerShell 4.0中创建一个脚本来自动设置Windows 6in4隧道。

该脚本在我的计算机上成功运行,但是当使用相同版本的其他人尝试该脚本时,脚本将失败。

粘滞点似乎在这里

# First Locate Which device is the Ethernet Adapter
$wiredAdapter = Get-NetAdapter | Where-Object {$_.PhysicalMediaType -eq '802.3'}

该行应该获得以太网适配器的适配器属性(在我的和其他个人系统上只有一个)

在我的系统上,如果我运行该行然后输出结果,我得到以下

PS C:\Users\Timothy> $wiredAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
Ethernet                  Qualcomm Atheros AR8131 PCI-E Gigabi...       3 Up           xx-xx-xx-3B-22-78       100 Mbps

然而,当他尝试直接复制该行时,他没有输出。

有人能说出这里出了什么问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

在我的系统上,Get-NetAdapter会按照我的预期返回 与上面的$ Wired相同

PS C:\Users\Timothy> Get-NetAdapter

Name                      InterfaceDescription                    ifIndex Status       MacAddress             LinkSpeed
----                      --------------------                    ------- ------       ----------             ---------
WiFi 3                    Atheros AR5007UG Wireless Network Ad...      13 Disconnected 00-1D-0F-B1-82-B9          0 bps
Ethernet                  Qualcomm Atheros AR8131 PCI-E Gigabi...       3 Up           F4-6D-04-3B-22-78       100 Mbps

如果我那么做(Get-NetAdapter).PhysicalMediaType我得到以下

PS C:\Users\Timothy> (Get-NetAdapter).PhysicalMediaType
Native 802.11
802.3

我选择了PhysicalMediaType,因为我从无线适配器的媒体类型中得到了奇怪的结果。

PS C:\Users\Timothy> (Get-NetAdapter).MediaType
802.3
802.3

仍然无法弄清楚为什么我会得到这个结果。

谢谢大家 - 问题是其他系统为以太网卡返回不同的值。令人讨厌的是这张卡与我的卡型号相同

Native 802.11
Unspecified
Unspecified
Unspecified
Unspecified
Unspecified
Unspecified

我确实使用Get-WMIObject来了解以下页面。

http://gallery.technet.microsoft.com/scriptcenter/PowerShell-Script-to-889c9505

然而,使用我的无线适配器被枚举为有线适配器:(