Hyper-V sanal Ethernet anahtarı nasıl kaldırılır


21

Hyper-V'deki eski bir VM anahtarı artık kullanılmıyor ve silmeye çalıştığımda, her zaman aşağıdaki mesajla başarısız oluyor:

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

GUI içinde silme girişimi de çalışmıyor:

GUI


erişim engellendi hatası = izin sorunu. admin kullanıyor musun
magicandre1981

evet, yönetici olarak çalışıyorum. Hatanın yanıltıcı olduğunu belirttim. Alt çizgi ağ bağdaştırıcısı ağ paylaşım merkezinde gitti, bunun hata olduğuna inanıyorum, ancak bu vmswitch'i nasıl kaldırabilirim.
17'de fluter

Yanıtlar:


13

Benzer bir sorun Microsoft'un TechNet forumlarında da çözüldü:

Virtual Switch Manager'da bir sanal anahtar kurulumumuz var ve bağdaştırıcı, Ağ ve Paylaşım Merkezi'nin "Bağdaştırıcı Ayarlarını Değiştir ..." kullanılarak yanlışlıkla silindi. Şimdi, anahtarın başarısız olduğu açıktır ve sadece listeden kaldırmak istiyoruz.

Sonuçta, OP kayıt defterinde derinlemesine bir arama gerçekleştirdi ve sanal anahtar yapılandırmasını aşağıdaki anahtarda sakladı:

HKLM \ SYSTEM \ CurrentControlSet \ Services \ VMSMP \ Parameters \ SwitchList

Bu anahtardaki karşılık gelen değeri sildikten ve yeniden başlattıktan sonra sanal anahtar gitmişti.

Her zaman olduğu gibi, .regbenzer değişiklikleri denemeden önce mevcut ayarlarınızı uygun bir yedeğe sahip olmak için bir dosyaya aktarmanızı tavsiye ederim .

(Kaynak: Başarısız sanal anahtar Hyper-V'nin Sanal Anahtar Yöneticisi'nden kaldırılamaz )


1
Bunun benim için çalıştığını doğrulayabilirim. Thx
mloskot

Kayıt defterinde böyle bir değer bulamıyorum: /
Jurosh

1
Bu benim için çalıştı, ancak ben de silmek için kayıt defterinde Ağ Bağlantısı kazmak zorunda kaldı. Bu, kayıt defterinde docker svc ile ilgili tüm başvuruları bıraktı: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ vmsmp \ parameters \ SwitchList \ {yada yada} ve HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSEt001 \ Control \ Network \ {yada yada}
JohnZaj

16

Azure Powershell araçlarını yüklemek istemedim, bu yüzden bu videodaki adımları izledim: https://www.youtube.com/watch?v=V5Gb342gSGg

Temel olarak Ağ Bağlantıları -> silmek istediğiniz sanal anahtarın özelliklerini aç -> Yapılandır -> Sürücü sekmesine git -> Cihazı Kaldır öğesine gidin.

Bilgisayarımı tamamen devre dışı bırakmadan yeniden başlattığımda Hyper-V hizmetinin yeni bir tane oluşturmasını önlemek için, her Hyper-V hizmetinin Başlangıç ​​Türünü Manuel olarak değiştirdim.


Bu, kayıt defterinde docker svc ile ilgili tüm başvuruları bıraktı: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ vmsmp \ parameters \ SwitchList \ {yada yada} ve HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSEt001 \ Control \ Network \ {yada yada}
JohnZaj

1
Şimdiye kadar en iyi çözüm. Kayıt defterine dokunmaktan kaçınmak en iyi uygulama olmalıdır.
Soleil

9

Docker kullanmama rağmen, kullanmadan bir çözüm bulmak istedim regedit, bu yüzden RobV8R'nin cevabını denedikten sonra MS Technet'te bu soru hakkında talimatlar buldum .

Get-HNSNetwork | Remove-HNSNetwork

Ya da, daha filtrelenmiş bir optoin için ihtiyacım olan buydu.

Get-HNSNetwork | ? Name -Like "Default Switch" | Remove-HNSNetwork

Ayrıca, @ mxgg250'nin tavsiyelerini takip etmek isteyeceğinizi ve tüm hyper-v servislerini manuel başlatmaya ayarlayacağınızı varsayacağım, aksi takdirde yeniden başlatma sırasında anahtarı yeniden oluşturacak.


"Get-HNSNetwork |? Name -Like 'nat' | Kaldır-HNSNetwork" - Docker for Windows kaldırıldıktan sonra geride 'nat' VMSwitch kaldırmak için güzel çalıştı, teşekkürler!
Froosh

… Bu ayrıca Microsoft'un temizleme Docker yönergelerinde de belgelenmiştir docs.microsoft.com/tr-tr/virtualization/windowscontainers/…
Froosh

6

DÜZENLEME BAŞLANGIÇ

Windows 10'un daha yeni sürümlerinde "Varsayılan Ağ" sanal anahtarı kullanıma sunuldu.

Bu yöntem işe yaramazsa, lütfen başka bir seçenek için @ bradlis7'nin yanıtına bakın.

SON DÜZENLEME

Bu, Windows 10 1607'de test edildi.

Docker kullanıyorsanız Kısa Yanıt:

PS> Stop-Service com.docker.service
PS> Remove-ContainerNetwork -Name nat

Uzun cevap:

Bu durumla karşılaşırsanız ve Kaplar'ı etkinleştirdiyseniz veya Docker'ı yüklediyseniz, VMSwitch'i kaldırabilmeniz için önce Docker'ı durdurmanız gerekir.

PS> Get-VMSwitch

Name                                   SwitchType NetAdapterInterfaceDescription
----                                   ---------- ------------------------------
DockerNAT                              Internal
nat                                    Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch                 External   Intel(R) Wireless

Gördüğünüz gibi, bir VMS anahtarım var nat. Gitmesini istiyorum.

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

Cevap oldukça basit çıktı. natVMSwitch'i bir NetNat ile yapılandırdığım için NetNat'ı kaldırdım. Bunun gerekli bir adım olup olmadığından emin değilim, ama yine de yaptım.

PS> Get-NetNat -Name '<name>' | Remove-NetNat

Sonra Docker'ı durdurdum.

PS> Stop-Service com.docker.service

Ve sonunda

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"):

Gittiğinden emin olmak için:

PS> Get-VMSwitch

Name                                   SwitchType NetAdapterInterfaceDescription
----                                   ---------- ------------------------------
DockerNAT                              Internal
Windows Phone Emulator Internal Switch Private
Primary Virtual Switch                 External   Intel(R) Wireless

2
Bilginize, bu prosedür işe yaramayabilir. Benim için işe yaramıyor. Hiçbir liman işçisi hizmeti çalışıyor, hala sarkanlığı reddedemezsiniz nat. Bu nedenle, @ Run5K cevabına başvurmak gerekebilir
mloskot

5

Bunun doğru olup olmadığından emin değilim ama benim için çalıştı: https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/


GÜNCELLEME

Kaynak: Windows 10'da Ağ Bağdaştırıcısı Silinemiyor mu?

Yöntem 1 - Aygıt Yöneticisi'ni kullanma

Yapmayı deneyebileceğiniz ilk şey Aygıt Yöneticisi'ni açmak (Başlat ve Aygıt Yöneticisi'ni tıklatın), Ağ Bağdaştırıcıları'nı genişletin ve ardından kaldırmak istediğiniz ağ bağdaştırıcısını sağ tıklatın.

resim açıklamasını buraya girin

Burada Cihazı kaldır adlı bir seçenek göreceksiniz. Umarım bu gri renkte olmamalıdır. Öyleyse, sonraki yönteme geçin. Kaldırma cihazını seçtiğinizde, kaldırma işlemini onaylamanızı isteyen başka bir pencere açılır.

resim açıklamasını buraya girin

Ayrıca, aygıtın sürücü yazılımını silme seçeneğini de görürsünüz. Ağ bağdaştırıcısını tamamen kaldırmak istiyorsanız, sürücüyü de kaldırmak için bu seçeneği seçmenizi öneririz. Her şey yolunda giderse, bağdaştırıcının Denetim Masası'ndaki Aygıt Yöneticisi'nden ve ağ bağdaştırıcıları listesinden kaldırıldığını görmeniz gerekir.

Burada listelenen cihazı görmüyorsanız, Görüntüle'yi ve ardından Gizli cihazları göster'i tıklamayı deneyebilirsiniz .

Yöntem 2 - Ağ Profilini Sil

Ayrıca ağ profilini komut satırından silmeyi ve ardından Yöntem 1'i tekrar deneyebiliriz. İlk olarak, Başlat'ı tıklatıp CMD yazıp ardından komut istemini sağ tıklatıp Yönetici Olarak Çalıştır'ı seçerek yükseltilmiş bir komut istemi açmanız gerekir .

Şimdi tüm kablolu (Ethernet) bağdaştırıcıları görmek için aşağıdaki komutu yazın:

netsh lan show profiles

Kablosuz bağdaştırıcıyı kaldırmanız gerekiyorsa, şu komutu yazın:

netsh wlan show profiles

Kablolu veya WLAN Otomatik Yapılandırma hizmetinin çalışmadığı konusunda bir hata iletisi alırsanız , Başlat'ı tıklatın, services.msc yazın, uygun hizmeti sağ tıklatın ve Başlat'ı seçin .

resim açıklamasını buraya girin

Şimdi komutu çalıştırdığınızda bir profil listesi görmelisiniz. Benim durumumda, bu bilgisayarda sadece bir profilim var.

resim açıklamasını buraya girin

Ardından, istenen arabirimi silecek aşağıdaki komutu yazın.

netsh lan delete profile interface="InterfaceName"

Yine, eğer bir kablosuz arayüz ise, lan yerine wlan kullanın . Profilleri göster komutunu çalıştırdığınızda, arabirim adı her bir başlığın üstünde ( arabirim adındaki profil) listelenir . Profil silindikten sonra, bilgisayarınızı yeniden başlatın ve Yöntem 1'i tekrar deneyin.

Yöntem 3 - Bağdaştırıcı Ayarlarını Kayıt Defteri aracılığıyla Kaldırma

ÖNEMLİ

Kayıt defterini düzenlemeniz gerekirse, önce kayıt defterini yedeklediğinizden emin olun .

Ağ profilini silmeye ek olarak, bağdaştırıcı ayarlarını kayıt defteri aracılığıyla kaldırmayı da deneyebilirsiniz. Ayarları kaldırdıktan sonra, yöntem 1'e geri dönüp bağdaştırıcıyı kaldırmayı deneyebilirsiniz. Ayarları kaldırmak için kayıt defteri düzenleyicisini açın (Başlat'a tıklayın ve regedit.msc yazın) ve aşağıdaki tuşa gidin:

HKEY_LOCAL_MACHINE - SYSTEM - CurrentControlSet - Services - Tcpip - Parameters - Interfaces

Uzun bir rastgele sayılar dizisiyle listelenen birkaç öğe göreceksiniz. Her birini tıklarsanız, o ağ bağdaştırıcısına atanan IP adresini görürsünüz.

resim açıklamasını buraya girin

Bir komut istemi açıp (cmd yazın) ve ipconfig yazarak hangi ağ bağdaştırıcısının bu kayıt defteri anahtarına karşılık geldiğini doğrulayabilirsiniz .

resim açıklamasını buraya girin

Gördüğünüz gibi, Ethernet adaptörü IP adresi 192.168.1.233 olan adaptördür. Böylece, {73123f2a-ad10-4f4b-900e…} ile başlayan Arayüzler altındaki anahtarı silersiniz . Farklı bir arayüze tıklarsanız, bunlardan biri, bilgisayardaki VMWare Ağ Adaptörüne karşılık gelen IP 192.168.247.1'e sahip olacaktır. Yine, bu sadece bağdaştırıcının ayarlarını siler, bağdaştırıcının kendisini siler. Bilgisayarı yeniden başlatın ve Yöntem 1'i yeniden deneyin.

Daha fazla bilgi için lütfen aşağıdaki bağlantıya bakın:

https://www.online-tech-tips.com/computer-tips/unable-delete-network-adapter-windows-10/


2

Yukarıdaki çözümleri denemeden önce, hata mesajı için 'ayrıntılar' bölmesini kontrol ettiğinizden emin olun. Benim durumumda, hatanın hala anahtarı kullanan diğer VM'ler nedeniyle oluştuğunu okudu.

VM'leri kapatmak ve tekrar denemek, anahtarı çıkardı.

Ayrıntılar bölmesi


0

Microsoft TechNet forumlarında sorunu çözmenin daha basit bir yolu vardır:

Köprü Bağdaştırıcısını " Denetim Masası > Ağ ve Internet > Ağ Bağlantıları " ndan Silmeyi Deneyin

Kaynak: https://social.technet.microsoft.com/Forums/en-US/winserverhyperv/thread/e49df568-4f4c-47b7-b30c-952d1e26ca58/#8ecfa676-3184-4035-96de-10df079f706f


1
Köprü Bağdaştırıcım yok.
johnny

@johnny "Ağ Bağlantıları" penceresinden ağ bağdaştırıcınızın ekran görüntüsünü paylaşabilir misiniz? Belki gelen talimatları uygulayarak Hyper-V Genişletilebilir Sanal Anahtarı protokolünü kaldırarak bunu çözebilir bu cevap .
Alejandro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.