0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Hyper-V の外部スイッチを作成しても仮想ネットワークアダプタが作成されない

Last updated at Posted at 2025-07-21

概要

Hyper-V マネージャで Wi-Fi のルータのネットワークアダプタに外部スイッチを紐付けて仮想マシンを起動したら、仮想 NIC が作成されていませんでした。そのため、ゲスト側で dnf install とかをしてもなにもインストールできない (ゲスト側から直接外部ネットワークと接続できない)、という状況に陥りました。

なので、手動で ( Powershell ) Wi-Fi のネットワークアダプタを外部スイッチを割り当てました。その結果、ipconfig したところ、外部スイッチの イーサネット アダプター vEthernet が追加されていました。

before

デフォルトスイッチの仮想NIC しか表示されていませんでした。

# Command Prompt
ipconfig
......
イーサネット アダプター vEthernet (Default Switch):

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::6ad6:e867:1f03:5613%24
   自動構成 IPv4 アドレス. . . . . . . .: 169.254.65.217
   サブネット マスク . . . . . . . . . .: 255.255.0.0
   デフォルト ゲートウェイ . . . . . . .:

after

vEthernet (ExternalSwitchWebServer) という項目が追加されています。外部スイッチの 仮想 NIC です。

# Command Prompt
ipconfig
......
イーサネット アダプター vEthernet (ExternalSwitchWebServer):

   メディアの状態. . . . . . . . . . . .: メディアは接続されていません
   接続固有の DNS サフィックス . . . . .:

イーサネット アダプター vEthernet (Default Switch):

   接続固有の DNS サフィックス . . . . .:
   リンクローカル IPv6 アドレス. . . . .: fe80::6ad6:e867:1f03:5613%24
   自動構成 IPv4 アドレス. . . . . . . .: 169.254.65.217
   サブネット マスク . . . . . . . . . .: 255.255.0.0
   デフォルト ゲートウェイ . . . . . . .:

: Default Switch の IP は 各環境でかわります。ちなみに筆者の環境では試行錯誤の過程で netsh interface ipv4 delete address name="vEthernet (Default Switch)" address=<origin_ip> で割り当てを解除したので、デフォルトのIPとは異なる値になっています。

追記 :
Wi-Fi ルータのネットワークアドレスを 仮想スイッチに割り当てると、物理リンク状態が "Disconnected" の状態になる ( ipconfig だと メディアの状態. . . . . .メディアは接続されていません となる) ので、アダプタの IP アドレスが取得できません。
筆者の別記事にて、この問題に対応しました。イーサネット (有線 NIC ) のネットワークアダプタを仮想スイッチに割り当て直す作業が必要です。本投稿、下記、対処法 2 で同じ対応手順を書いてます

前提

仮想マシンを作成→外部スイッチを作成 ( Hyper-V マネージャでどちらも作成)

はまったところ

下記の Powershell コマンドで、ネットワークアダプタに外部スイッチを割り当てようとするとエラーになり失敗する。

# ネットワークアダプタ名を確認
Get-NetAdapter -Physical | Select Name, InterfaceDescription

Name         InterfaceDescription
----         --------------------
イーサネット Intel(R) Ethernet Controller I226-V
Wi-Fi        Realtek 8852BE Wireless LAN WiFi 6 PCI-E NIC
# 外部スイッチ名を確認
Get-VMSwitch | Select Name, SwitchType, NetAdapterInterfaceDescription

Name                    SwitchType NetAdapterInterfaceDescription
----                    ---------- ------------------------------
ExternalSwitchWebServer   External Realtek 8852BE Wireless LAN WiFi 6 PCI-E NIC
Default Switch            Internal
# 外部スイッチにネットワークアダプタを割り当てようとするとエラーになる
Set-VMSwitch -Name "ExternalSwitchWebServer" -NetAdapterName "Realtek 8852BE Wireless LAN WiFi 6 PCI-E NIC"
Set-VMSwitch : 物理ネットワーク アダプター 'Realtek 8852BE Wireless LAN WiFi 6 PCI-E NIC' が見つかりません。
発生場所 :1 文字:1
+ Set-VMSwitch -Name "ExternalSwitchWebServer" -NetAdapterName "Realtek ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-VMSwitch], VirtualizationException
    + FullyQualifiedErrorId : Unspecified,Microsoft.HyperV.PowerShell.Commands.SetVMSwitch

この状態でエラー内容を ChatGpt に投げると、

Wi-Fiのルータのネットワークアダプタでは外部スイッチのバインドに制限があります。特に Set-VMSwitchNew-VMSwitch でWi-Fiを指定すると、**「物理ネットワークアダプターが見つかりません」**というエラーが出ることが多いです。

とのこと。

追記: 上のコマンドで 単に -NetAdapterName の指定する値を間違えていました。Get-NetAdapter で取得した Name 列の値を指定するのが正しいです:

Set-VMSwitch -Name "ExternalSwitchWebServer" -NetAdapterName "Wi-Fi"

対処法

  1. 【成功した方法】追記 に書いたように、Set-VMSwitch でWi-Fi ネットワークアダプタに外部スイッチを割り当てる。
Set-VMSwitch -Name "ExternalSwitchWebServer" -NetAdapterName "Wi-Fi"

これでうまくいかない (同じエラーが出る) 場合は、ChatGpt が言っているように Wi-Fi ルータのネットワークアダプタとの互換性がない可能性があります。以下の手順を参考に対応してみてはいかがでしょうか。( 今回は検証していませんので自己責任でお願いします)

追記: 以下の筆者別記事にて、イーサネットアダプタ (有線 NIC ) を割り当て直しました。

2.[ 任意 ] イーサネットアダプタ ( 有線 NIC ) を外部スイッチに割り当て直す。(何をしているか理解できていない場合はやらないでください。)

対処法 2 の設定の流れ ( 任意 )

  1. 現在割り当てられている 既存の Wi-Fi ルータのネットワークアダプタを、仮想スイッチから解除
  2. 仮想スイッチを新しくイーサネットアダプタに割り当てる

ただし、ホストOS が 有線 LAN に LAN ケーブルなどですでにつながっていることが条件。有線 LAN のイーサネットアダプタを仮想外部スイッチに割り当てます。そうすると、(ホスト側に) 外部スイッチのネットワークインターフェース (仮想 NIC ) が作成されます。それを介してゲストOS側から直接外部ネットワークに出られるようになります。

詳細な手順 ( 任意 )

外部スイッチをイーサネットのネットワークアダプタを割り当てます。

Set-VMSwitch -Name "ExternalSwitchWebServer" -NetAdapterName "イーサネット"

追記:
Wi-Fi ルータのネットワークアダプタを仮想スイッチに割りてると、ipconfigメディアの状態. . . . . .メディアは接続されていません となり、IP アドレスがアダプタに正しく割り振られません
対処法 2 を実行し、下記、筆者別記事でさらに詳細を確認してみてはいかがでしょうか。

仮想スイッチのネットワークアダプタを切り替える

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?