Un commutateur obsolète VM dans Hyper-V n'est plus utilisé et lorsque j'essaie de le supprimer, il échoue toujours avec le message suivant:
PS C:\> Get-VMSwitch nat
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
nat Private
PS C:\> Get-VMSwitch nat | Remove-VMSwitch -Force
Remove-VMSwitch : Failed while removing virtual Ethernet switch.
Switch delete failed, switch = 'acf82f05-c07c-4b35-8588-921498456027': General access denied error (0x80070005).
At line:1 char:20
+ Get-VMSwitch nat | Remove-VMSwitch -Force
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Remove-VMSwitch], VirtualizationException
+ FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.RemoveVMSwitch
Tenter de supprimer dans l'interface graphique ne fonctionne pas, soit:
Un problème similaire a été résolu sur les forums TechNet de Microsoft:
Nous avons configuré un commutateur virtuel dans Virtual Switch Manager et l'adaptateur a été supprimé par erreur à l'aide de la rubrique "Modifier les paramètres de l'adaptateur ..." du centre de réseau et de partage. Évidemment, le commutateur est en état d'échec et nous souhaitons simplement le retirer de la liste.
En fin de compte, l'OP a effectué une recherche approfondie dans le registre et a trouvé la configuration du commutateur virtuel stockée dans la clé suivante:
HKLM\SYSTEM\CurrentControlSet\Services\VMSMP\Parameters\SwitchList
Après avoir supprimé la valeur correspondante dans cette clé et redémarré, le commutateur virtuel avait disparu.
Comme toujours, je vous recommande d’exporter vos paramètres actuels dans un fichier .reg
afin d’avoir une sauvegarde appropriée avant de tenter des modifications similaires.
Je ne souhaitais pas installer les outils Azure Powershell, j'ai donc suivi les étapes décrites dans cette vidéo: https://www.youtube.com/watch?v=V5Gb342gSGg
En gros, vous allez dans Connexions réseau -> ouvrez les propriétés du commutateur virtuel que vous voulez supprimer -> cliquez sur Configurer -> allez à l'onglet Pilote -> Désinstaller le périphérique.
Pour empêcher le service Hyper-V d'en créer un nouveau lors du prochain redémarrage de mon ordinateur sans le désactiver complètement, j'ai modifié le type de démarrage de chaque service Hyper-V en mode Manuel.
BEGIN EDIT
Les versions les plus récentes de Windows 10 ont introduit un commutateur virtuel "Réseau par défaut".
Si cette méthode ne fonctionne pas, veuillez consulter la réponse de @ bradlis7 pour une autre option.
END EDIT
Ceci a été testé sur Windows 10 1607.
Réponse courte, si vous utilisez Docker:
PS> Stop-Service com.docker.service
PS> Remove-ContainerNetwork -Name nat
Longue réponse:
Si vous rencontrez ce problème et que Containers est activé ou que Docker est installé, vous devez arrêter Docker avant de pouvoir supprimer le VMSwitch.
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
nat Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless
Comme vous pouvez le constater, j'ai un commutateur VMS appelé nat
. Je veux que ça parte.
PS> Remove-VMSwitch -Name nat
Confirm
Are you sure you want to remove the virtual switch "nat"?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Remove-VMSwitch : Failed while removing virtual Ethernet switch.
Switch delete failed, switch = '<guid>': General access denied error (0x80070005).
At line:1 char:1
+ Remove-VMSwitch -Name nat
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Remove-VMSwitch], VirtualizationException
+ FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.RemoveVMSwitch
La réponse s’est avérée plutôt simple. Comme j'avais configuré le VMSwitch nat
avec un NetNat, j'ai supprimé le NetNat. Je ne sais pas si c'est une étape nécessaire, mais je l'ai quand même fait.
PS> Get-NetNat -Name '<name>' | Remove-NetNat
Puis j'ai arrêté Docker.
PS> Stop-Service com.docker.service
Et enfin
PS> Remove-ContainerNetwork -Name nat
Confirm
Remove-ContainerNetwork will remove the container network "nat".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Pour s'assurer qu'il était parti:
PS> Get-VMSwitch
Name SwitchType NetAdapterInterfaceDescription
---- ---------- ------------------------------
DockerNAT Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch External Intel(R) Wireless
Même si je n'utilise pas Docker, je souhaitais trouver une solution sans utiliser regedit
. Ainsi, après avoir tenté la réponse de RobV8R , j'ai trouvé des instructions sur cette question sur MS Technet .
Get-HNSNetwork | Remove-HNSNetwork
Ou, pour un optoin plus filtré, c'est ce dont j'avais besoin.
Get-HNSNetwork | ? Name -Like "Default Switch" | Remove-HNSNetwork
De plus, je suppose que vous voudrez suivre les conseils de @ mxgg250 et définir tous les services hyper-v sur un démarrage manuel, sinon le système sera recréé lors du redémarrage.
Je ne suis pas sûr que cela soit exact, mais cela a fonctionné pour moi: https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/
Source: impossible de supprimer la carte réseau sous Windows 10?
La première chose que vous pouvez essayer est d'ouvrir le Gestionnaire de périphériques (cliquez sur Démarrer et tapez Gestionnaire de périphériques), développez Cartes réseau, puis cliquez avec le bouton droit sur la carte réseau que vous souhaitez supprimer.
Ici, vous verrez une option appelée Désinstaller le périphérique. Cela devrait, espérons-le, ne pas être grisé. Si c'est le cas, passez à la méthode suivante. Lorsque vous sélectionnez désinstaller le périphérique, une autre fenêtre apparaît vous demandant de confirmer la désinstallation.
Vous verrez également une option permettant de supprimer le logiciel du pilote pour le périphérique. Si vous souhaitez supprimer complètement la carte réseau, je vous suggère de sélectionner cette option pour supprimer également le pilote. Si tout se passe bien, vous devriez voir que l'adaptateur a été supprimé du Gestionnaire de périphériques et de la liste des adaptateurs réseau dans le Panneau de configuration.
Si vous ne voyez pas le périphérique répertorié ici, vous pouvez essayer de cliquer sur Voir puis sur Afficher les périphériques cachés.
Nous pouvons également essayer de supprimer le profil de réseau via la ligne de commande, puis d’essayer à nouveau la méthode 1. Vous devez d’abord ouvrir une invite de commande avec privilèges élevés en cliquant sur Démarrer, en tapant CMD, puis en cliquant avec le bouton droit de la souris sur Invite de commande et en choisissant Exécuter en tant qu’administrateur.
Maintenant, tapez la commande suivante pour voir tous les adaptateurs câblés (Ethernet):
netsh lan show profiles
Si vous devez supprimer un adaptateur sans fil, tapez cette commande:
netsh wlan show profiles
Si vous obtenez un message d'erreur indiquant que le service Wired ou WLAN AutoConfig ne fonctionne pas, cliquez sur Démarrer, tapez services.msc, cliquez avec le bouton droit sur le service approprié et choisissez Démarrer.
Maintenant, lorsque vous exécutez la commande, vous devriez voir une liste de profils. Dans mon cas, je n'ai qu'un seul profil sur cet ordinateur.
Ensuite, tapez la commande suivante, qui supprimera l'interface souhaitée.
netsh lan delete profile interface="InterfaceName"
Encore une fois, s’il s’agit d’une interface sans fil, utilisez wlan au lieu de lan. Le nom de l'interface est répertorié en haut de chaque en-tête (Profil sur le nom de l'interface) lorsque vous avez exécuté la commande show profiles. Une fois le profil supprimé, redémarrez votre ordinateur et essayez à nouveau la méthode 1.
IMPORTANT
Si vous devez modifier le registre, assurez-vous de sauvegarder le registre en premier } _.
En plus de supprimer le profil réseau, vous pouvez également essayer de supprimer les paramètres de l’adaptateur via le registre. Après avoir supprimé les paramètres, vous pouvez revenir à la méthode 1 et essayer de supprimer l'adaptateur. Pour supprimer les paramètres, ouvrez l’éditeur de registre (cliquez sur Démarrer et tapez regedit.msc), puis accédez à la clé suivante:
HKEY_LOCAL_MACHINE - SYSTEM - CurrentControlSet - Services - Tcpip - Parameters - Interfaces
Vous verrez plusieurs éléments énumérés avec une longue série de nombres aléatoires. Si vous cliquez sur chacun d'eux, l'adresse IP attribuée à cette carte réseau apparaît.
Vous pouvez confirmer quelle carte réseau correspond à cette clé de registre en ouvrant une commande Invite (Démarrer et tapez cmd) et en tapant ipconfig.
Comme vous pouvez le constater, l’adaptateur Ethernet a une adresse IP de 192.168.1.233. Donc, vous supprimeriez la clé sous Interfaces qui commence par {73123f2a-ad10-4f4b-900e…}. Si vous cliquez sur une autre interface, l’une d’entre elles aura l’IP 192.168.247.1, qui correspond à la carte réseau VMWare de l’ordinateur. Encore une fois, cela supprime uniquement les paramètres de l'adaptateur, pas l'adaptateur lui-même. Redémarrez l'ordinateur et essayez à nouveau la méthode 1.
Pour plus d'informations, veuillez vous référer au lien suivant:
https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/
Il existe un moyen plus simple de résoudre le problème sur les forums TechNet de Microsoft:
Essayez de supprimer la Adaptateur de pont de " Panneau de configuration > Réseau et Internet > Connexions réseau "