Get-NetAdapter Powershell Cmdlet中的“不存在”是什么意思?

Server 2012,Powershell 3.0。

我正在做一些工作,需要自动启用和禁用networking适配器。 这里是我运行Get-NetAdapter时看到的一个例子:

 Name InterfaceDescription ifIndex Status MacAddress LinkSpeed ---- -------------------- ------- ------ ---------- --------- Slot 0 Port 4 HP NC382i DP Multifunction Gigabi...#53 15 Not Present 11-80-1B-94-2A-82 0 bps Slot 0 Port 2 (TM-2) HP NC382i DP Multifunction Gigabi...#51 14 Up 11-80-1B-94-27-72 1 Gbps Team 1 (Team) Microsoft Network Adapter Multiplexo... 17 Up 11-80-1B-94-2A-72 1 Gbps Slot 0 Port 3 HP NC382i DP Multifunction Gigabi...#52 13 Disabled 11-80-1B-94-2A-80 1 Gbps Slot 0 Port 1 (TM-1) HP NC382i DP Multifunction Gigabi...#50 12 Up 11-80-1B-94-2A-70 1 Gbps 

注意Status属性不是二进制的。 它可能是Up,Disabled或Not Present。

在状态为“不存在”的网卡上运行Enable-NetAdapter时,该命令以静默方式返回,没有错误输出,但不启用NIC。 然后,我通过右键单击“控制面板”中的图标并select“启用”来手动启用网卡。 其状态现在已启用状态为Up。

然后我在网卡上运行Disable-NetAdapter 。 它的地位现在是“残疾人”。

现在, Enable-NetAdapter Cmdlet按预期工作,并打开网卡。

  • 那么,什么是“不存在”,为什么Powershell在启用NIC的时候无法启用它,但是我没有通过GUI启用它的问题,但是现在它似乎只能在Enabled和Disabled之间来回切换。
  • 如果我想如何得到'不存在'?
  • 如何在Powershell处于“不存在”状态时启用NIC?

Not Present状态来自MSFT_NetAdapter类的InterfaceOperationalStatus。 它用于已知的networking接口,但是由于缺less硬件而导致目前不可用。 另一个原因可能是硬件的驱动程序当时没有加载。 如果使用设备pipe理器停用NIC,则驱动程序将卸载。 例如,VMware Workstation的虚拟网卡将被取消激活,并在启动使用虚拟网卡的虚拟机之前显示为“不存在”。

Powershell只能使用Enable-NetAdapterDisable-NetAdapterGet-NetAdapter来处理接口,而不是NIC本身。 如果设备已停用,则可能必须使用设备pipe理cmdlet

如果您closures了NIC(设备),它可以显示为“状态:不存在”。 要启用设备,您只需使用Get-WmiObject命令:

$ wmi = Get-WmiObject -Class Win32_NetworkAdapter -filter“Name LIKE'%Adapter%'”

$ wmi.enable()

资料来源: http : //blogs.technet.com/b/heyscriptingguy/archive/2014/01/13/enabling-and-disabling-network-adapters-with-powershell.aspx