Get-VMNetworkAdapter kommandot rapporterar inte IP-adresser

Den här artikeln beskriver ett problem där kommandots utdata Get-VMNetworkAdapter inte innehåller de IP-adresser som är associerade med det angivna kortet.

Gäller för: Windows Server (alla versioner)

Symptom

Du kör Get-VMNetworkAdapter PowerShell-kommandot i en kommandotolk på en virtuell dator. Du kan till exempel köra följande kommando:

PS C:\> Get-VMNetworkAdapter -VMName clu3vm1

Kommandoutdata liknar följande:

Name            IsManagementOs VMName  SwitchName MacAddress   Status IPAddresses
----            -------------- ------  ---------- ----------   ------ -----------
Network Adapter False          CLU3VM1 Public     00155D081704 {Ok}   {}

I stället för att innehålla förväntade data IPAddress är kolumnen i tabellen tom.

Om du vill felsöka det här problemet kontrollerar du först att exchange-integreringstjänsten för Key-Value par är aktiverad. Det gör du genom att köra följande kommando:

PS C:\> (Get-VM -VMName clu3vm1).VMIntegrationService
VMName  Name                    Enabled PrimaryStatusDescription SecondaryStatusDescription
------  ----                    ------- ------------------------ --------------------------
CLU3VM1 Guest Service Interface False   OK
CLU3VM1 Heartbeat               True    OK                       OK
CLU3VM1 Key-Value Pair Exchange True    OK
CLU3VM1 Shutdown                True    OK
CLU3VM1 Time Synchronization    True    OK
CLU3VM1 VSS                     True    OK

Om Key-Value Pair Exchange-tjänsten inte är aktiverad aktiverar du den och kör Get-VMNetworkAdapter sedan igen. Om IP-adressinformationen fortfarande saknas och tjänsten är aktiverad NetTCPIP saknas förmodligen WMI-providern från den virtuella datorn. Kör kommandot på namnområdet i kommandotolken Get-WmiObject enligt Root\\Standardcimv2 följande:

PS C:\> Get-WmiObject -Namespace "root\standardcimv2" -Class __Win32Provider | select __NAMESPACE, Name

Utdata liknar följande exempel. Observera att ROOT\Standardcimv2 NetTCPIP saknas.

__NAMESPACE        Name
-----------        ----
ROOT\Standardcimv2 NetEventPacketCapture
ROOT\Standardcimv2 MSFT_Printer
ROOT\Standardcimv2 NetTtCim
ROOT\Standardcimv2 MsNetImPlatform
ROOT\Standardcimv2 NetDaCim
ROOT\Standardcimv2 NlmCim
ROOT\Standardcimv2 netnat
ROOT\Standardcimv2 wfascim
ROOT\Standardcimv2 NetSwitchTeam
ROOT\Standardcimv2 NetAdapterCim
ROOT\Standardcimv2 dnsclientcim
ROOT\Standardcimv2 NetQosCim
ROOT\Standardcimv2 NetPeerDist
ROOT\Standardcimv2 NetNcCim 

Använd dessutom Get-WmiObject för att visa attributen för MSFT_NetIPInterfaceAdapter klassen enligt följande:

PS C:\> Get-WmiObject -Namespace "root\standardcimv2" -Class "MSFT_NetIPInterfaceAdapter"

I stället för det svar som du förväntar dig ser utdata ut ungefär som i följande exempel:

Get-WmiObject : Invalid class "MSFT_NetIPInterfaceAdapter"
At line:1 char:1
+ Get-WmiObject -Namespace "root\Standardcimv2" -Class "MSFT_NetIPInter ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidType: (:) [Get-WmiObject], ManagementException
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

Orsak

NetTCPIP WMI-providern är inte installerad i gästoperativsystemet (den virtuella datorn).

Lösning

Öppna ett upphöjt kommandotolkfönster på den virtuella datorn och ändra sedan till %SystemRoot%\System32\wbem mappen . Kör följande kommandon i kommandotolken:

C:\Windows\System32\wbem>regsvr32.exe NetTCPIP.dll

C:\Windows\System32\wbem>mofcomp.exe NetTCPIP.mof

Du bör se följande utdata:

Microsoft (R) MOF Compiler Version 10.0.14393.0
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
Parsing MOF file: NetTCPIP.mof
MOF file has been successfully parsed
Storing data in the repository...
Done!