O que significa 'Not Present' no Cmdlet Get-NetAdapter Powershell?

7

Servidor 2012, Powershell 3.0.

Estou fazendo um trabalho que requer a automação da ativação e desativação de adaptadores de rede. Aqui está um exemplo do que vejo quando executo 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

Observe que o atributo Status não é binário. Pode estar ativo, desativado ou ausente.

Quando executo Enable-NetAdapter em uma NIC cujo status é 'Not Present', o comando retorna silenciosamente, sem saída de erro, mas não ativa a NIC. Em seguida, ativei a NIC manualmente clicando com o botão direito do mouse no seu ícone no Painel de controle e escolhendo Ativar. Seu status agora estava ativado com um status de up.

Em seguida, executei Disable-NetAdapter na NIC. Seu status agora era "Desativado".

Agora, o Enable-NetAdapter Cmdlet funcionou como esperado e ativa a NIC.

  • Então, o que era 'Not Present' e por que o Powershell não habilitou o NIC quando estava nesse estado, mas eu não tive problemas em habilitá-lo via GUI, mas agora ele parece apenas alternar entre o Enabled e o Desativado?
  • Como obtenho de volta 'Not Present' se eu quisesse?
  • Como habilito uma NIC com o Powershell quando ela está no estado 'Not Present'?
por Ryan Ries 07.03.2014 / 23:05

2 respostas

6

O estado Not Present vem do InterfaceOperationalStatus da classe MSFT_NetAdapter. É usado para interfaces de rede conhecidas, mas atualmente não disponíveis devido ao hardware ausente, por exemplo. Outra razão pode ser que o driver para o hardware simplesmente não foi carregado no momento. Se você desativar a NIC usando o gerenciador de dispositivos, o driver descarregará. NICs virtuais, da VMware Workstation, por exemplo, ficarão desativadas e aparecerão como "Não Presente" até que você inicialize uma máquina virtual que as use.

O Powershell lida apenas com interfaces e não com as próprias NICs usando Enable-NetAdapter , Disable-NetAdapter e Get-NetAdapter . Se o dispositivo foi desativado, você provavelmente precisará usar os cmdlets de gerenciamento de dispositivos

    
por 09.03.2014 / 02:46
3

Se você desativou o NIC (dispositivo), ele pode ser mostrado como "Status: não presente". Para habilitar o dispositivo, você só precisa usar o comando Get-WmiObject:

$ wmi = Get-WmiObject -Class Win32_NetworkAdapter -filter "Nome LIKE '% Adapter%'"

$ wmi.enable ()

Fonte: link

    
por 31.03.2014 / 21:53