強制移除 Hyper-V 的虛擬網卡


「Hyper-V」這東西(參考維基百科),是微軟 Windows 作業系統的虛擬機器技術,最早應該是只有出現在 Windows Server 的作業系統上,應該是該是在 Windows 8 的時候,正是地進入家用作業系統(Windows 7 是使用 Windows Virtual PC)。

透過 Hyper-V 這類的功能,可以在作業系統中,再另外虛擬一台機器出來,安裝別的作業系統,再有必要做不同系統的測試的時候,算是相當方便的功能~有興趣要使用的話,可以參考《使用 Windows 8 內建的 Hyper-V 來建立虛擬機器》這篇文章的教學;由於這不是 Heresy 這篇的重點,所以就跳過了。

在使用 Hyper-V 來建立虛擬機器的時候,為了要讓虛擬機器可以連上網路,基本上都要建立一個「虛擬交換器」,讓虛擬機器的網卡,可以透過實體網卡來做連線。

而在建立好虛擬交換器之後,在「裝置管理員」裡,就會多出一個「Hyper-V Virtual Ethernet Adapter」的網路介面卡;像右圖中的「Hyper-V Virtual Ethernet Adapter #2」,就是這樣的虛擬網路卡。

基本上,在建立了 Hyper-V 的虛擬網卡後,本來實體網卡的設定應該會消失、改由虛擬網卡來做設定,這部分的細節 Heresy 也不太瞭,所以就跳過了。Heresy 這邊的重點,是要怎麼移除這個 Hyper-V 虛擬網路卡。


正規移除方法

按照標準的方法,要移除 Hyper-V 虛擬網路卡,是需要透過「Hyper-V 管理員」,然後點選右方的「虛擬交換器管理員」(下圖)、開啟虛擬交換器的列表。

在虛擬交換器管理員(下圖)中,左邊可以看到所有的虛擬交換器,這邊只要選許要刪除的虛擬交換器,然後點選右下方的「移除」、再按「套用」或「確定」,就可以把它移除了~


強制移除的方法

看起來正規的移除方法非常簡單啊~那為什麼 Heresy 要強制移除呢?主要就是…Heresy 自己曾經有幾次在升級 Windows 或是 Visual Studio 更新裝置模擬器後(其實不太肯定發生原因),會出現 Hyper-V 的虛擬網路有問題的狀況;在這類的狀況下,有的時候是連想要移除都移除不了的… = =

像 Heresy 在這次把 Windows 10 更新到 1511 後,就出現了虛擬網卡的問題,導致整台機器無法上網(嚴謹一點說,是有個虛擬網卡處於停用狀態、又無法啟用)…而當 Heresy 想把虛擬交換其移除,卻又出現無法移除的狀況…

那遇到這樣的問題該怎麼解決呢?Heresy 這邊是參考《Removing the ghost Hyper-V vNic adapter when using Converged Networks after in-place upgrade to W2012R2》這篇文章的作法;他最基本的概念,就是

  1. 先透過「登錄編輯程式」去把虛擬網卡的資料從系統的登錄檔內強制刪除
  2. 再去裝置管理員裡面,把它給移除
  3. 之後有需要的話,再透過「Hyper-V 管理員」重新加入虛擬交換器

基本上,這個方法在 Heresy 這邊是可以正常處理掉那張有問題的虛擬網卡的~(不同的電腦,也發生過兩三次了…)

不過這邊還是建議:保險起見,建議先建立系統還原點、或是其他充分的備份!以避免各種不可預期的錯誤

詳細的步驟如下:

  1. 執行「regedit」、開啟「登錄編輯程式」(按鍵盤的 Win + R,然後輸入「regedit」後按確定),從左邊的樹狀結構,找到「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ROOT\VMS_MP」。

  2. 底下應該會有「0000」、「0001」這類的數字;點選之後,右邊會顯示對應的資訊。
    而根據「FriendlyName」,應該可以找到對應的虛擬網卡。

  3. 基本上,這邊只要把它的值都刪除,應該就可以了;但是由於權限的問題,所以需要先修改權限,讓他可以被刪除。這部分的操作,是先點選左邊的數字(例如這邊是「0002」),然後按滑鼠右鍵,在選單中點選「使用權限…」,這樣可以叫出他的權限設定視窗。

  4. 點選上圖視窗右下角的「進階」後,可以叫出他的「進階安全設定」視窗(如下圖)。
    這邊可以看到,他的「擁有者」是「SYSTEM」。

  5. 接下來,點選「SYSTEM」右邊的「變更」,則會出現「選取使用者與群組」的視窗。
    在這個視窗的下方空白處,輸入「administrators」後,按右邊「檢查名稱」,應該可以看到他會帳號名稱補完(加上電腦名稱),這時候就可以按右下角的「確定」了。
    這時候會回到「進階安全設定」視窗,首先先按右下角的「套用」,讓使用者的修改生效。

  6. 之後,再點選上方的「Everyone」,打開「權限項目」視窗,並把裡面的「完全控制」打勾。
    然後按「確定」關閉視窗。

  7. 回到「進階安全設定」視窗後,按「確定」套用這些變更、並關閉視窗。
    之後在「0002 的權限」這個視窗,也按「確定」關閉。
    這樣一來,就有權限可以處理這邊的資料了。

  8. 之後,回到登錄編輯程式,把右邊的機碼都選起來(最上面的「預設值」除外)後,點選滑鼠右鍵、按「刪除」。

    如果前面的權限修改正確的話,這邊應該會可以正確地刪除這些機碼。

  9. 如果有多張要刪除的虛擬網卡的話,請重複上面的動作,直到把對應的登陸機碼都刪除。

  10. 接下來,進到網路卡管理的介面。
    以 Windows 10 來說,可以按開始、選「設定」,點選「網路和網際網路」後,選左邊的「乙太網路」,然後點右邊的「變更介面卡選項」。
    這邊開啟一個 Windows 7 風格的「網路連線」視窗(下圖),理論上這時候就會看到那些 Hyper-V 的虛擬網路卡都消失了~

  11. 不過,以 Heresy 的狀況來說,這時候還是不能上網!這有可能是因為實體網卡的設定不正確造成的。
    要修正的話,可以在網卡的圖示(以上圖來說,就是「Ethernet」)上點兩下滑鼠左鍵,叫出「Ethernet 狀態」的視窗,然後點選左下方的「內容」,進入他的設定視窗(下圖)。

  12. 在 Heresy 這邊的狀況,是發現他的「這個連線使用下列項目」裡的東西,基本上是全部都被許蕭、沒有被勾起來的!所以理所當然地也不能上網!
    所以接下來,就是把底下的東西都勾起來(「Hyper-V Extensible Virtual Switch」可以不要勾)後,按「確定」,這樣網路卡應該就會重新開始運作了!
    當然,如果有指定固定 IP 的話,這邊也可能需要重新設定的~

  13. 之後,打開「裝置管理員」,選取「網路介面卡」,按滑鼠右鍵後、選擇「掃描硬體變更」。
    等他重新掃描完後,應該會看到本來的「Hyper-V Virtual Ethernet Adapter」變成「無法辨識的裝置」了~這時候,就可以在它上面按滑鼠右鍵、點選「解除安裝」、把它移除了。

理論上,這樣應該就可以讓網路正常運作了~之後如果 Hyper-V 的虛擬機器還需要網路的話,則是需要重新透過 「Hyper-V 管理員」加入虛擬交換器、建立新的虛擬網卡來用。

不過,「Hyper-V 管理員」裡面可能會發現舊的虛擬交換器還在那,而且不能移除;這時候請重開機,之後那些被強制砍掉的虛擬交換器就會消失了。

對「強制移除 Hyper-V 的虛擬網卡」的想法

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.