8 votes

Que signifie "Not Present" dans la cmdlet Powershell Get-NetAdapter ?

Serveur 2012, Powershell 3.0.

Je travaille sur un projet qui nécessite d'automatiser l'activation et la désactivation des adaptateurs réseau. Voici un exemple de ce que je vois lorsque je lance le programme 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

Remarquez que l'attribut Status n'est pas binaire. Il peut être Up, Disabled ou Not Present.

Quand je cours Enable-NetAdapter sur une carte réseau dont le statut est 'Not Present', la commande revient en silence, sans erreur, mais n'active pas la carte réseau. J'ai donc activé la carte manuellement en cliquant avec le bouton droit de la souris sur son icône dans le Panneau de configuration et en choisissant Enable. Son état est maintenant activé et son statut est "Up".

Puis j'ai couru Disable-NetAdapter sur la carte réseau. Son statut est maintenant "Désactivé".

Maintenant, le Enable-NetAdapter La cmdlet a fonctionné comme prévu et a activé la carte réseau.

  • Alors, qu'est-ce que 'Not Present' et pourquoi Powershell n'a pas réussi à activer la carte réseau alors qu'elle était dans cet état, alors que je n'ai eu aucun problème à l'activer via l'interface graphique, mais maintenant il semble qu'elle ne fasse que des allers-retours entre Enabled et Disabled ?
  • Comment puis-je récupérer la mention "Non présent" si je le voulais ?
  • Comment activer une carte réseau avec Powershell lorsqu'elle est dans l'état 'Not Present' ?

6voto

lsmooth Points 1521

El Not Present provient de l'InterfaceOperationalStatus de la classe MSFT_NetAdapter. Il est utilisé pour les interfaces réseau qui sont connues mais actuellement non disponibles en raison d'un matériel manquant par exemple. Une autre raison pourrait être que le pilote pour le matériel n'a tout simplement pas été chargé à ce moment-là. Si vous désactivez la carte réseau à l'aide du gestionnaire de périphériques, le pilote se décharge. Les cartes réseau virtuelles, de VMware Workstation par exemple, seront désactivées et affichées comme "non présentes" jusqu'à ce que vous démarriez une machine virtuelle qui les utilise.

Powershell ne gère que les interfaces, pas les cartes réseau elles-mêmes, en utilisant la fonction Enable-NetAdapter , Disable-NetAdapter y Get-NetAdapter . Si le dispositif a été désactivé, vous devez probablement utiliser la fonction cmdlets de gestion des périphériques

3voto

user2765479 Points 131

Si vous avez éteint la carte réseau (périphérique), elle peut être affichée comme "Status : Not Present". Pour activer le périphérique, il suffit d'utiliser la commande Get-WmiObject :

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

$wmi.enable()

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X