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

Rya*_*ies 7 windows-server-2012 powershell-v3.0

服务器 2012,Powershell 3.0。

我正在做一些需要自动启用和禁用网络适配器的工作。这是我运行时看到的示例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
Run Code Online (Sandbox Code Playgroud)

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

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

然后我Disable-NetAdapter在网卡上运行。它的状态现在是“禁用”。

现在,Enable-NetAdapterCmdlet 按预期工作并打开 NIC。

  • 那么什么是“不存在”,为什么 Powershell 在该状态下无法启用网卡,但我通过 GUI 启用它没有问题,但现在它似乎只能在启用和禁用之间来回切换?
  • 如果我想,我如何取回“不存在”?
  • 当 NIC 处于“不存在”状态时,如何使用 Powershell 启用它?

lsm*_*oth 6

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

Powershell 只处理接口,而不是 NIC 本身使用Enable-NetAdapter,Disable-NetAdapterGet-NetAdapter. 如果设备已停用,则您可能必须使用设备管理 cmdlet